Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
97d05be
add vdext15 with Ctrl+Click -> Goto Definition
rainers Sep 6, 2019
6edab7e
add missing file, add some folders to .gitignore
rainers Sep 6, 2019
8f27621
use dmd for semantic analysis
rainers Oct 20, 2017
6343b11
improve building with new Win10 SDK, better find UCRTVersion
rainers Apr 30, 2018
5faf402
update to dmd master
rainers Apr 30, 2018
a99b94c
basic fix dmdserver
rainers Apr 30, 2018
ba0255e
handle newexp
rainers Apr 30, 2018
7cfe73d
fix rebase
rainers Dec 8, 2018
fa85589
move dmdserver into subfolder
rainers Dec 9, 2018
439b3a5
handle out-of-memory more graciously, fix test build
rainers Dec 26, 2018
78ce1a8
moved dmdserver, fixed unittest init, better restart of vdserverclient
rainers Dec 26, 2018
9421980
fix build, tweak errors and tooltips
rainers Jan 19, 2019
c4d01df
other output paths for x64 builds
rainers Jul 19, 2019
b689f45
adapt to recent dmd/GC
rainers Jul 19, 2019
edc1d53
dmdserver: keep parsed AST, syntaxCopy before analyze
rainers Jul 25, 2019
0acdb80
dmdserver: tweak reinit, ASTVisitor
rainers Jul 30, 2019
9e4f54b
dmdserver: tweak AST finder, tooltips, goto def
rainers Aug 1, 2019
5104161
cleanup projects
rainers Aug 1, 2019
b4cc8f1
implement GetBinaryIsInLocations
rainers Aug 2, 2019
f180565
implement GetIdentifierTypes
rainers Aug 2, 2019
566829a
implement basic GetReferences
rainers Aug 2, 2019
5f11574
basic implementation of GetSemanticExpansions
rainers Aug 3, 2019
fe3f9c5
split off dmd initialization into separate module
rainers Aug 4, 2019
a293f9d
show ddoc comment in tooltip
rainers Aug 4, 2019
048dead
move error code to dmderrors.d
rainers Aug 4, 2019
6502a5e
adapt to recent compiler
rainers Aug 16, 2019
1fca42c
more dmdserver fixes/tweaks
rainers Aug 23, 2019
de0e80c
some code completion
rainers Sep 1, 2019
7c9d7cc
more expansions
rainers Sep 1, 2019
3431ea2
dmdserver: use one process per client
rainers Sep 6, 2019
ace02fb
x64 builds should go into other directory
rainers Sep 8, 2019
0671acf
fix dmdserver compilation
rainers Sep 8, 2019
36e59fe
fix column of findIdentifierTypes
rainers Sep 8, 2019
447b5a1
rebase dmd to master
rainers Sep 8, 2019
2bcf15d
fix coloring of NewExp
rainers Sep 8, 2019
dc359bb
file name cleanup
rainers Sep 8, 2019
5c72318
debug GC leaks
rainers Sep 14, 2019
57148e0
experimental: add colorful QuickInfo tooltips
rainers Sep 15, 2019
b333316
avoid deprecation warnings with dmd 2.088
rainers Sep 15, 2019
84ec5e9
adapt conversion to Win SDK 10.0.18362.0
rainers Sep 21, 2019
15dc1ab
appveyor: remove VS2015 build
rainers Sep 21, 2019
c8c9cf7
installer: add build tools sections
rainers Sep 21, 2019
00e57d4
fix typo
rainers Sep 22, 2019
de30675
allow file wildcards for dependency exclusions
rainers Sep 20, 2019
27ddbc3
tweak build
rainers Sep 21, 2019
cf04a0e
add (m|c|re)alloc_noscan, append \0\0 to source
rainers Sep 22, 2019
44d34a0
fix dmd update
rainers Sep 24, 2019
19c136e
more tests, fix static type-dot-ident expressions
rainers Sep 30, 2019
bd1c619
use version LanguageServer in addition to NoBackend
rainers Oct 3, 2019
0229ef3
add mago options hideReferencePointers and removeLeadingHexZeroes
rainers Oct 4, 2019
198caca
Merge remote-tracking branch 'remotes/rainers/dmdserver'
rainers Oct 4, 2019
e49a4af
build dmdserver on appveyor
rainers Oct 4, 2019
45c6649
appveyor.yml: upgrade dmd and visuald
rainers Oct 4, 2019
0451c35
appveyor.yml: run dmdserver test
rainers Oct 4, 2019
e60e8d1
fix TestDebug dependencies
rainers Oct 4, 2019
98454e3
dparser: now creates server process per Visual Studio Instance
rainers Oct 5, 2019
63c4756
implement tooltip for collapsed region
rainers Oct 5, 2019
a93fde3
fix and tweak parameter tooltips
rainers Oct 6, 2019
bcfaa4b
x64 build: fix output folder
rainers Oct 15, 2019
e7ee830
fix build with dmd 2.088
rainers Oct 15, 2019
6f333ce
ivdserver: add warnings option
rainers Oct 15, 2019
1087a31
add semantic errors to error list
rainers Oct 15, 2019
0c7135d
flatten: do not modify actual processing, pass and collect original s…
rainers Oct 17, 2019
8767378
allow syntax-copying of classes in object.d
rainers Oct 18, 2019
b7d7836
fix highlighting types
rainers Oct 20, 2019
4b4a103
dmdserver: fix base class references, show kind interface and union
rainers Nov 2, 2019
7265726
fix crash
rainers Nov 2, 2019
c3f65b4
basic DUB support: update and refresh if project contains dub.json or…
rainers Nov 2, 2019
97b892d
fix more semantics
rainers Nov 9, 2019
2d7ae45
pass original LinkToolExe to ipelink.exe
rainers Nov 16, 2019
11c07b0
dmdserver: fix evaluating TypeIdentifier, referencing manifest consta…
rainers Nov 16, 2019
d94d76b
implement builtin properties
rainers Nov 17, 2019
6aaeec6
fix signature tooltips
rainers Nov 17, 2019
43dd530
bump version to 0.51.0-beta1
rainers Nov 17, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ vdextensions/obj
/msbuild/dbuild/.vs
/test
.vs
/msbuild/dbuild/assemblies
/vdextensions/assembly
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "vdc/abothe/Parser"]
path = vdc/abothe/Parser
url = https://github.com/rainers/D_Parser.git
[submodule "vdc/dmdserver/dmd"]
path = vdc/dmdserver/dmd
url = https://github.com/rainers/dmd.git
18 changes: 18 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -1174,3 +1174,21 @@ Version history
* don't highlight asm keywords/mnemonics/registers from semantic information
* VS 2019 16.2: command line options no longer read correctly from the VC project for
Compile and Run/Debug/Disassemble, dbuild refactored to not rely on msbuild DLLs for that

unreleased Version 0.51.0
* Ctrl+Click goto definition added for VS2017+
* experimental: semantic server built from dmd frontend
* VS2017+: syntax highlighted tool tips
* mago:
- new option "hide reference pointers"
- new option: "remove leading zeroes from hex values"
- fix crash expanding pointer to empty dynamic array
- large arrays: show growing index, fix omitting last element
* installer: add sections for "Build Tools VS2017/2019""
* dparser: now creates server process per Visual Studio instance
* added option to not show error squiggles and markers
* added tooltip to collapsed region
* fix function signature tool tips
* error list now filled with intellisense errors
* basic DUB support: upgrade and refresh if project contains dub.json or dub.sdl
* msbuild: pass original variable LinkToolExe to pipelink.exe through environment
11 changes: 10 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ visuald_test:
vdserver:
devenv /Project "vdserver" /Build "$(CONFIG)|Win32" visuald_vs10.sln

dmdserver:
devenv /Project "dmdserver" /Build "$(CONFIG)|x64" visuald_vs10.sln

dmdserver_test:
devenv /Project "dmdserver" /Build "TestDebug|x64" visuald_vs10.sln

dparser:
cd vdc\abothe && $(MSBUILD15) vdserver.sln /p:Configuration=Release;Platform="Any CPU" /p:TargetFrameworkVersion=4.5.2 /p:DefineConstants=NET40 /t:Rebuild
editbin /STACK:0x800000 bin\Release\DParserCOMServer\DParserCOMServer.exe
Expand All @@ -81,6 +87,9 @@ fake_dparser:
vdextension:
cd vdextensions && $(MSBUILD) vdextensions.csproj /p:Configuration=Release;Platform=x86 /t:Rebuild

vdext15:
cd vdextensions && $(MSBUILD) vdext15.csproj /p:Configuration=Release;Platform=x86 /t:Rebuild

visualdwizard:
cd vdwizard && $(MSBUILD) VisualDWizard.csproj /p:Configuration=Release;Platform=AnyCPU /t:Rebuild

Expand Down Expand Up @@ -163,7 +172,7 @@ install_vs_no_vs2017: install_modules fake_dparser cv2pdb mago dbuild12 dbuild

install_vs_only_vs2017: install_modules dparser dparser_test cv2pdb_vs15 mago_vs15 fake_dbuild12 fake_dbuild14 dbuild15 install_only

install_modules: prerequisites visuald_vs vdserver vdextension visualdwizard dcxxfilt
install_modules: prerequisites visuald_vs vdserver dmdserver vdextension vdext15 visualdwizard dcxxfilt

install_only:
if not exist ..\downloads\nul md ..\downloads
Expand Down
79 changes: 79 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,86 @@ Unsorted

- dparser: doesn't support qualified name in catch(fqn)

- dpp support

0.45.0
======
- exception on vdextensions: The Visual Studio component cache is out of date

0.49.0
======
- DParser:
+ static if (is(__traits(parent, target) : __traits(parent, rest[0])))
+ static if (is(T == __vector) )
- needs too much CPU
- Documentation:
- installation (VC required)
- move newer VS versions to top
+ colors
- tooltips
- exceptions while VC project loaded?
- VS2019:
- new project: D templates hardly accessible
+ vcxproj: DCompiler not selectable
- mago:
- toDebug
- context 'this' and members of 'this' shown
- pasting large code snippet is slow with auto-indent

0.50.0
======
+ VS 16.2: pdb newer than exe
+ Deprecation shown as error

- search files/symbols sometimes blank: columns have width 0
- new D module: adjust module name

+ VC project: simpler opt-in for -mixin, per package filename
+ -extern-std=

- dark scheme: colors wrong after install (also happens for C#?), colors still too dark
- reference highlight: wrong color, not shown in scroll margin
- download: no update for the status bar in VS2017
+ display html error
+ update message "DMD 2.086.1 Goto Page"?
+ VC projects: DMD/LDC switch not visible in non-english?

+ vtbl for C++ classes
- mago: call update in VS2019
+ mago: VS2019, dragging a variable from the autos, locals, or watches copies the whole line (C++, too?)
+ mago: breakpoint conditions no longer supported?
- mago: debug info with different cased filenames opened twice in VS
+ mago: limit array exansions
+ mago: AA with impl, but without elements?
- mago: start class expansions for derived type

+ support -lowmem
+ show message if compiler path wrong

- LDC: options for debug-lib and LTO

- HiDPI:
+ edit line in search dialog
+ edit line in profiler dialog
+ search and replace token dialog
+ C++ conversion wizard
- toolbar bitmaps don't scale
- adapt tool window color to theme

- semantic coloring:
- x in foreach(x; range)
- x in if(auto x = ptr)
- goto labels
- exit in scope(exit)
- x in extern(x)
- public imports in imports


0.50.1
======
+ reset settings to default
+ msbuild doesn't work after first full instllation, still needs to open+close settings
- vd reported as "unresponsive" when loading project (> 7 sec)
+ VC parallel build

- compile & disassemble: VC projects output dir always Win32/Debug
8 changes: 4 additions & 4 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define VERSION_MAJOR 0
#define VERSION_MINOR 50
#define VERSION_REVISION 1
#define VERSION_BETA
#define VERSION_BUILD 0
#define VERSION_MINOR 51
#define VERSION_REVISION 0
#define VERSION_BETA -beta
#define VERSION_BUILD 1
28 changes: 14 additions & 14 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@ environment:
- os: Visual Studio 2017
VS: 15
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- os: Visual Studio 2015
VS: 14
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
# - os: Visual Studio 2015
# VS: 14
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
# - os: Visual Studio 2013
# VS: 12
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015

# cache relative to C:\projects\visuald
cache:
- C:\projects\cache\dmd2083_0.7z
- C:\projects\cache\dmd2088_0.7z
- C:\projects\cache\cd851.zip
- C:\projects\cache\VisualD-v0.47.0.exe
- C:\projects\cache\VisualD-v0.50.1.exe
- C:\projects\cache\binutils-2.25.tar.gz

#matrix:
Expand All @@ -50,10 +50,10 @@ install:
# Download & extract D compiler
- ps: |
If ($Env:D_COMPILER -eq 'dmd') {
If (-not (Test-Path 'cache\dmd2083_0.7z')) {
Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.083.0/dmd.2.083.0.windows.7z' -FileName 'cache\dmd2083_0.7z'
If (-not (Test-Path 'cache\dmd2088_0.7z')) {
Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.088.0/dmd.2.088.0.windows.7z' -FileName 'cache\dmd2088_0.7z'
}
7z x cache\dmd2083_0.7z > $null
7z x cache\dmd2088_0.7z > $null
Set-Item -path env:DMD -value c:\projects\dmd2\windows\bin\dmd.exe
c:\projects\dmd2\windows\bin\dmd.exe --version
} ElseIf ($Env:D_COMPILER -eq 'dmd-nightly') {
Expand All @@ -77,10 +77,10 @@ install:
copy c:\projects\dm\bin\coffimplib.exe c:\projects\dmd2\windows\bin
# Download & install Visual D
- ps: |
If (-not (Test-Path 'cache\VisualD-v0.47.0.exe')) {
Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v0.47.0/VisualD-v0.47.0.exe' -FileName 'cache\VisualD-v0.47.0.exe'
If (-not (Test-Path 'cache\VisualD-v0.50.1.exe')) {
Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v0.50.1/VisualD-v0.50.1.exe' -FileName 'cache\VisualD-v0.50.1.exe'
}
- cache\VisualD-v0.47.0.exe /S
- cache\VisualD-v0.50.1.exe /S
# configure DMD path
- reg add "HKLM\SOFTWARE\DMD" /v InstallationFolder /t REG_SZ /d c:\projects /reg:32 /f
# disable link dependencies monitoring, fails on AppVeyor server
Expand All @@ -104,14 +104,14 @@ before_build:
build_script:
- cd c:\projects
- cd visuald
# Fetch submodules
- git submodule update --init --recursive
# ignore failure once, in case it needs reloading the sdk project
- nmake prerequisites || nmake prerequisites
# build Visual D
- nmake visuald_vs
# build and run Visual D unittests
- nmake visuald_test
# Fetch submodules
- git submodule update --init --recursive
- nmake visuald_test dmdserver_test
- cd ..
# Clone mago/cv2pdb (need to be two levels up)
- cd ..
Expand Down
3 changes: 2 additions & 1 deletion build/build.visualdproj
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,7 @@ dmd -map "$(IntDir)\$(InputName).map" "-of$(OutDir)\$(InputName).
<File customcmd="dmd -map $(OutDir)\$(InputName).map -of$(IntDir)\$(InputName).exe $(InputPath) ..\tools\nostacktrace.d" perConfig="true" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\mb2utf16.d" tool="Custom">
<Config tool="Custom" customcmd="echo Compiling $(InputPath)...
dmd -g -map &quot;$(IntDir)\$(InputName).map&quot; &quot;-of$(OutDir)\$(InputName).exe&quot; &quot;-od$(IntDir)&quot; $(InputPath) ..\tools\nostacktrace.d" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" name="Debug|Win32" />
<Config tool="Custom" customcmd="dmd -map $(OutDir)\$(InputName).map -of$(OutDir)\$(InputName).exe $(InputPath) ..\tools\nostacktrace.d" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" name="TestDebug|Win32" />
<Config tool="Custom" customcmd="echo Compiling $(InputPath)...
if exist &quot;$(VSINSTALLDIR)\Common7\Tools\vsvars32.bat&quot; call &quot;$(VSINSTALLDIR)\Common7\Tools\vsvars32.bat&quot;
if exist &quot;$(VCINSTALLDIR)\Auxiliary\Build\vcvars32.bat&quot; ( pushd . &amp;&amp; call &quot;$(VCINSTALLDIR)\Auxiliary\Build\vcvars32.bat&quot; &amp;&amp; popd )
Expand All @@ -639,7 +640,7 @@ if exist &quot;$(VCINSTALLDIR)\Auxiliary\Build\vcvars32.bat&quot; ( pushd . &amp
if errorlevel 1 goto reportError
dmd -m32mscoff -map &quot;$(IntDir)\$(InputName).map&quot; &quot;-of$(OutDir)\$(InputName).exe&quot; $(InputPath) ..\tools\nostacktrace.d user32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" name="Release COFF32|Win32" />
<Config tool="Custom" customcmd="echo Compiling $(InputPath)...
dmd -map $(OutDir)\$(InputName).map -of$(IntDir)\$(InputName).exe $(InputPath) ..\tools\nostacktrace.d" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" name="Release|Win32" />
dmd -map $(OutDir)\$(InputName).map -of$(OutDir)\$(InputName).exe $(InputPath) ..\tools\nostacktrace.d" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" name="Release|Win32" />
</File>
<File customcmd="dmd -map $(IntDir)\$(InputName).map -of$(OutDir)\$(InputName).exe $(InputPath) ..\tools\nostacktrace.d" perConfig="true" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\pipedmd.d" tool="Custom">
<Config tool="Custom" customcmd="echo Compiling $(InputPath)...
Expand Down
2 changes: 1 addition & 1 deletion build/dte_idl.bat
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if "%IVIEWER%" == "" if exist "%WindowsSdkVerBinPath%\x86\iviewers.dll" set IVIE
if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\x86\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\x86\iviewers.dll
if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\iviewers.dll
if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\%WindowsSdkVersion%\x86\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\%WindowsSdkVersion%\x86\iviewers.dll
if "%IVIEWER%" == "" (echo "iviewer.dll" not found && exit /B 1)
if "%IVIEWER%" == "" (echo "iviewer.dll" not found with WindowsSdkDir="%WindowsSdkDir%", WindowsSdkVersion=%WindowsSdkVersion% && exit /B 1)

echo "%TLB2IDL%" "%MSENV%\dte80.olb" "%DTE_IDL_PATH%\dte80.idl" "%IVIEWER%"

Expand Down
8 changes: 4 additions & 4 deletions c2d/c2d.visualdproj
Original file line number Diff line number Diff line change
Expand Up @@ -795,7 +795,7 @@
<program>m:\s\d\rainers\windows\bin\dmd.exe</program>
<imppath>..</imppath>
<fileImppath>..</fileImppath>
<outdir>..\bin\$(ConfigurationName)64</outdir>
<outdir>..\bin\$(ConfigurationName)\$(PlatformName)</outdir>
<objdir>$(OutDir)\$(ProjectName)</objdir>
<objname />
<libname />
Expand Down Expand Up @@ -1397,10 +1397,10 @@
<cccmd>$(CC) -c</cccmd>
<ccTransOpt>1</ccTransOpt>
<addDepImp>0</addDepImp>
<program>m:\s\d\rainers\windows\bin\dmd_msc.exe</program>
<program />
<imppath>..</imppath>
<fileImppath>..</fileImppath>
<outdir>..\bin\$(ConfigurationName)</outdir>
<outdir>..\bin\$(ConfigurationName)\$(PlatformName)</outdir>
<objdir>$(OutDir)\$(ProjectName)</objdir>
<objname />
<libname />
Expand Down Expand Up @@ -1884,7 +1884,7 @@
<program>m:\s\d\rainers\windows\bin\dmd_msc.exe</program>
<imppath>..</imppath>
<fileImppath>..</fileImppath>
<outdir>..\bin\$(ConfigurationName)</outdir>
<outdir>..\bin\$(ConfigurationName)\$(PlatformName)</outdir>
<objdir>$(OutDir)\$(ProjectName)</objdir>
<objname />
<libname />
Expand Down
Loading