Skip to content

Commit cdf4c76

Browse files
authored
Merge pull request #295 from rainers/master
Visual D v1.4.0
2 parents 67ae7e8 + db836bd commit cdf4c76

File tree

16 files changed

+253
-114
lines changed

16 files changed

+253
-114
lines changed

CHANGES

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,3 +1400,9 @@ Version history
14001400
2025-03-02 version 1.4.0-rc6
14011401
* now works with Visual Studio for Windows on ARM64
14021402
* installer now supports 4 parallel installations of VS 2022
1403+
1404+
2025-03-09 version 1.4.0
1405+
* added separate version of dbuild.dll linked against Microsoft.Build.CPPTasks.Common for VS 17.14
1406+
* mago: fixed showing intellisense information in tool tip while debugging in VS2022
1407+
* mago: expression evaluator now resolves identifiers of named enumerator types
1408+
* full installer now bundled with DMD 2.110.0 and LDC 1.40.0

Makefile

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,11 @@ dbuild17_12:
183183
dbuild17_13:
184184
cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v17_13;Platform=AnyCPU /t:Rebuild
185185

186-
dbuild17_all: dbuild17_0 dbuild17_1 dbuild17_2 dbuild17_3 dbuild17_4 dbuild17_5 dbuild17_6 dbuild17_7 dbuild17_8 dbuild17_9 dbuild17_10 dbuild17_11 dbuild17_12 dbuild17_13
186+
dbuild17_14:
187+
cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v17_14;Platform=AnyCPU /t:Rebuild
188+
189+
dbuild17_all: dbuild17_0 dbuild17_1 dbuild17_2 dbuild17_3 dbuild17_4 dbuild17_5 dbuild17_6 dbuild17_7 \
190+
dbuild17_8 dbuild17_9 dbuild17_10 dbuild17_11 dbuild17_12 dbuild17_13 dbuild17_14
187191

188192
mago:
189193
cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln
@@ -247,7 +251,9 @@ $(DCXXFILT_EXE): tools\dcxxfilt.d
247251
##################################
248252
# create installer
249253

250-
install_release_modules: install_modules fake_dparser cv2pdb_vs17 mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc dbuild12 dbuild14 dbuild15
254+
install_release_modules: install_modules visuald_vs_arm64 fake_dparser cv2pdb_vs17 \
255+
mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc \
256+
dbuild12 dbuild14 dbuild15
251257

252258
install_vs: install_release_modules install_only
253259

@@ -257,7 +263,7 @@ install_vs_only_vs2017: install_modules dparser dparser_test cv2pdb_vs15 mago_vs
257263

258264
install_modules: d_modules vdextension vdext15 visualdwizard dcxxfilt
259265

260-
d_modules: prerequisites visuald_vs visuald_vs_x64 visuald_vs_arm64 vdserver dmdserver
266+
d_modules: prerequisites visuald_vs visuald_vs_x64 vdserver dmdserver
261267

262268
appveyor: d_modules cv2pdb_vs16 mago_vs16 magogc
263269

README.md

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
This is the README file for Visual D, a
55
Visual Studio package providing both project management and language services
66

7-
Copyright (c) 2010-2019 by Rainer Schuetze, All Rights Reserved
7+
Copyright (c) 2010-2025 by Rainer Schuetze, All Rights Reserved
88

99
Visual D aims at providing seamless integration of the D programming language
1010
into Visual Studio.
@@ -61,20 +61,7 @@ Major Features
6161
- disassembly view synchronized with source code
6262

6363
* Supported Visual Studio versions
64-
- VS 2008 - VS 2019, Community, Professional or Enterprise versions
65-
66-
Express versions of Visual Studio do not support this
67-
kind of extensions. If you need to use these old version, use the Visual Studio Shell instead:
68-
- VS 2008 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=9771
69-
- VS 2010 Shell: no longer available
70-
- VS 2012 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=30670
71-
+ http://www.microsoft.com/en-us/download/details.aspx?id=30663
72-
73-
If you are using the Visual Studio Shell 2008 or 2010, it misses one file,
74-
that is needed for the conversion of the debug information by cv2pdb. This
75-
is msobj80.dll for VS2008 and msobj100.dll for VS2010 and must be extracted
76-
from a standard installation, the Visual C Express edition or the Windows SDK.
77-
You might also find it installed by other Microsoft products.
64+
- VS 2008 - VS 2022, Community, Professional or Enterprise versions
7865

7966
* Includes tools to
8067
- convert some idl/h files of the Windows SDK to D

VERSION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#define VERSION_MAJOR 1
22
#define VERSION_MINOR 4
33
#define VERSION_REVISION 0
4-
#define VERSION_BETA -rc
5-
#define VERSION_BUILD 6
4+
#define VERSION_BETA
5+
#define VERSION_BUILD 0

c2d/cpp2d.d

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,14 @@ string fixNumber(string num)
673673
return num[0..$-1];
674674
if(endsWith(num, "L"))
675675
return num[0..$-1];
676+
if(endsWith(num, "ui8"))
677+
return num[0..$-3];
678+
if(endsWith(num, "ui16") || endsWith(num, "ui32"))
679+
return num[0..$-4];
680+
if(endsWith(num, "i8"))
681+
return num[0..$-2];
682+
if(endsWith(num, "i16") || endsWith(num, "i32"))
683+
return num[0..$-3];
676684
return num;
677685
}
678686

c2d/idl2d.d

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ class idl2d
147147
"dpa_dsa.h",
148148
// Win SDK 10.0.18362.0
149149
"fileapifromapp.h",
150+
// Win SDK 10.0.26100.0
151+
// "intsafe.h",
150152
])
151153
win_idl_files ~= f ~ "*"; // make it optional
152154

@@ -580,6 +582,9 @@ class idl2d
580582
case "GetLastError":
581583
case "MF_END": // defined twice in winuser.h, but said to be obsolete
582584
case "__int3264":
585+
case "INT128_MIN":
586+
case "INT128_MAX":
587+
case "UINT128_MAX":
583588
return 1;
584589

585590
case "_NO_SCRIPT_GUIDS": // used in activdbg.h, disable to avoid duplicate GUID definitions
@@ -1282,6 +1287,11 @@ version(all)
12821287
replaceTokenSequence(tokens, "__VARIANT_NAME_4", "", true);
12831288
}
12841289

1290+
if(currentModule == "winbase")
1291+
{
1292+
replaceTokenSequence(tokens, "#define CopyVolatileMemory$defs\n$defines\n#define ZeroDeviceMemory RtlZeroDeviceMemory\n", "", false);
1293+
}
1294+
12851295
if(currentModule == "windef")
12861296
{
12871297
// avoid removal of #define TRUE 1
@@ -1329,6 +1339,8 @@ version(all)
13291339
"/+ $* +/", true);
13301340
replaceTokenSequence(tokens, "FORCEINLINE PVOID ReadPointerAcquire $code WritePointerRaw($args) { $code2 }",
13311341
"/+ $* +/", true);
1342+
// win 10.0.26100.0: unused definitions before declaration
1343+
replaceTokenSequence(tokens, "#define __NtCurrentTebAddr$def_more\n$defines\n#endif", "#endif", true);
13321344
}
13331345

13341346
if(currentModule == "commctrl")
@@ -1432,6 +1444,11 @@ version(all)
14321444
{
14331445
replaceTokenSequence(tokens, "#ifndef INTEROPLIB\n[in] $ifcode\n#else\n$elsecode\n#endif", "[in] $ifcode", false);
14341446
}
1447+
if(currentModule.startsWith("textmgr"))
1448+
{
1449+
// declaration in textmgr.idl is in enum
1450+
replaceTokenSequence(tokens, "#define MAX_FILE_TYPE 24", "", false);
1451+
}
14351452

14361453
for(TokenIterator tokIt = tokens.begin(); tokIt != tokens.end; )
14371454
{
@@ -1983,6 +2000,7 @@ version(all) {
19832000
replaceTokenSequence(tokens, "__deref_out_xcount_opt($args)", "/+$*+/", true);
19842001
replaceTokenSequence(tokens, "__deref_opt_out_bcount_full($args)", "/+$*+/", true);
19852002
replaceTokenSequence(tokens, "__deref_inout_ecount_z($args)", "/+$*+/", true);
2003+
replaceTokenSequence(tokens, "_Deref_out_range_($args)", "/+$*+/", true);
19862004
replaceTokenSequence(tokens, "__field_bcount($args)", "/+$*+/", true);
19872005
replaceTokenSequence(tokens, "__field_bcount_opt($args)", "/+$*+/", true);
19882006
replaceTokenSequence(tokens, "__field_ecount($args)", "/+$*+/", true);
@@ -2045,6 +2063,8 @@ version(all) {
20452063
replaceTokenSequence(tokens, "_Outptr_opt_result_bytebuffer_all_($args)", "/+$*+/", true);
20462064
replaceTokenSequence(tokens, "_Outptr_opt_result_buffer_($args)", "/+$*+/", true);
20472065
replaceTokenSequence(tokens, "_Releases_exclusive_lock_($args)", "/+$*+/", true);
2066+
replaceTokenSequence(tokens, "_Releases_nonreentrant_lock_($args)", "/+$*+/", true);
2067+
replaceTokenSequence(tokens, "_Acquires_nonreentrant_lock_($args)", "/+$*+/", true);
20482068
replaceTokenSequence(tokens, "_Releases_shared_lock_($args)", "/+$*+/", true);
20492069
replaceTokenSequence(tokens, "_Acquires_exclusive_lock_($args)", "/+$*+/", true);
20502070
replaceTokenSequence(tokens, "_Acquires_shared_lock_($args)", "/+$*+/", true);

doc/StartPage.dd

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ $(H2 News)
8585
$(P $(LINK2 VersionHistory.html, Full version history and complete details...)
8686
)
8787

88+
2025-03-14 Version 1.4.0
89+
$(UL
90+
$(LI fixed msbuild integration for VS 2022 17.5 - 17.14)
91+
$(LI now works with Visual Studio for Windows on ARM64)
92+
$(LI dmdserver updated to frontend of DMD 2.110.0, improved completion)
93+
$(LI full installer now bundled with DMD 2.110.0 and LDC 1.40.0)
94+
$(LI for better responsiveness mago debug extension now executes visualizer calls asynchronously)
95+
)
96+
8897
2022-10-09 Version 1.3.1
8998
$(UL
9099
$(LI fixed memory leak in dmdserver)
@@ -99,13 +108,6 @@ $(P $(LINK2 VersionHistory.html, Full version history and complete details...)
99108
$(LI full installer now bundled with DMD 2.100.0 and LDC 1.29.0)
100109
)
101110

102-
2022-01-15 Version 1.2.0
103-
$(UL
104-
$(LI added support for VS 2022)
105-
$(LI dmdserver updated to frontend of DMD 2.098.1)
106-
$(LI full installer now bundled with DMD 2.098.1 and LDC 1.28.1)
107-
)
108-
109111
$(LINK2 VersionHistory.html, more...)
110112

111113
$(H2 Download)

doc/VersionHistory.dd

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,55 @@
11
Ddoc
22

3+
$(H2 2025-03-14 Version 1.4.0)
4+
$(UL
5+
$(LI fixed msbuild integration for VS 2022 17.5 - 17.14)
6+
$(LI now works with Visual Studio for Windows on ARM64)
7+
$(LI dmdserver:
8+
$(UL
9+
$(LI updated to frontend of DMD 2.110.0)
10+
$(LI now slightly less dependent on D runtime by avoiding lowerings)
11+
$(LI fixed some false pointers causing memory leaks)
12+
$(LI pass import paths from prerequisite projects to semantic analysis, too)
13+
$(LI log communication with Visual D to %TEMP%/dmdserver if that folder exists)
14+
$(LI improve completion for member variables, code in switch statement)
15+
$(LI fixed completion for fields/members of class/struct fields)
16+
$(LI added option to display type size and alignment in tool tip)
17+
))
18+
$(LI mago debugger extension:
19+
$(UL
20+
$(LI fix crash due to changed return values from IDiaSession in VS2022, probably fixes issue #261)
21+
$(LI fixed issue #282: now (mostly) calls __debug* methods asynchronously)
22+
$(LI fixed issue #279: display void[] as ubyte[] in the debugger)
23+
$(LI fixed issue #281: dereference pointer with '.' for arrays, too)
24+
$(LI fixed switching GC for funtion evaluation and adapted it to dmd 2.109)
25+
$(LI fixed display of tuples (currently only with LDC))
26+
$(LI do not hide __param_.. function arguments as compiler generated symbols)
27+
$(LI fixed showing intellisense information in tool tip while debugging in VS2022)
28+
$(LI expression evaluator now resolves identifiers of named enumerator types)
29+
))
30+
$(LI language service:
31+
$(UL
32+
$(LI fixed issue 23734: avoid exception by std.file.isDir when clicking a project folder that doesn't exist)
33+
$(LI updated dfmt library from upstream)
34+
$(LI improved message when dmd crashes)
35+
$(LI "add imports from dependent projects" is now evaluated recursively and passed to semantic analysis)
36+
$(LI added support for compiler option -preview=shortenedMethods)
37+
$(LI fixed issue #264: VisualD doesn't run compiled executable, when I select "Compile and Run" option)
38+
$(LI fixed issue #269: avoid BOM in response file if system codepage is UTF-8)
39+
$(LI fixed detecting dmd update after 2.108)
40+
$(LI updated to build with dmd-2.110)
41+
$(LI fixed crash if source window closed before semantic analysis callback completed)
42+
$(LI fixed building with VS 2022)
43+
))
44+
$(LI installer:
45+
$(UL
46+
$(LI full installer now bundled with DMD 2.110.0 and LDC 1.40.0)
47+
$(LI installer now supports 4 parallel installations of VS 2022)
48+
$(LI project template cache now removed if Visual D does not find itself in it. Workaround for issue #256)
49+
$(LI fixed some version inaccuracies in installation files)
50+
))
51+
)
52+
353
$(H2 2022-09-10 Version 1.3.1)
454
$(UL
555
$(LI full installer now bundled with DMD 2.100.2 and LDC 1.30.0)

doc/visuald.ddoc

Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,73 @@
1-
VERSION = 1.3.1
2-
DMD_VERSION = 2.100.2
3-
LDC_VERSION = 1.30.0
4-
ROOT_DIR = https://www.dlang.org/
5-
ROOT = https://www.dlang.org
6-
BODYCLASS = visuald
7-
PROJECT = visuald
8-
WIKI = visuald
9-
SELF_PATH =
10-
LAYOUT_SUFFIX=
11-
1+
VERSION = 1.4.0
2+
DMD_VERSION = 2.110.0
3+
LDC_VERSION = 1.40.0
4+
ROOT_DIR = https://www.dlang.org/
5+
ROOT = https://www.dlang.org
6+
BODYCLASS = visuald
7+
PROJECT = visuald
8+
WIKI = visuald
9+
SELF_PATH =
10+
LAYOUT_SUFFIX=
11+
1212
VDLINK=$(LINK2 $1.html, $2)
1313
IMG = <img src="$0" />
14-
IMG_CENTER = <div align="center"><img src="$0" /></div>
15-
TABLE_NOBORDER = <table style="border-width: 0px 0">$0</table>
16-
_=
17-
MENU_W_SUBMENU_OPEN = <li class='expand-container open'><a class='expand-toggle' href='#'><span>$0</span></a>
18-
19-
SUBNAV=$(SUBNAV_TEMPLATE
20-
$(SUBNAV_HEAD Visual D $(VERSION), StartPage.html, Home, subnav-duplicate)
21-
$(UL
22-
$(MENU StartPage.html, Home)
23-
$(MENU https://github.com/dlang/visuald/releases, Downloads)
24-
$(MENU Installation.html, Installation)
25-
$(MENU_W_SUBMENU_OPEN Tour)
26-
$(SUBMENU
27-
Features.html, Feature List,
28-
GlobalOptions.html, Global Options,
29-
ProjectWizard.html, Project Wizard,
30-
Editor.html, Editor,
31-
Search.html, Search Window,
32-
TokenReplace.html, Token Replace,
33-
ProjectConfig.html, Project Config,
34-
vcxproject.html, VC Project Integration,
35-
CppConversion.html, C++ to D,
36-
Debugging.html, Debugging,
37-
CompileCommands.html, Compile Commands,
38-
Profiling.html, Profiling,
39-
Coverage.html, Code Coverage,
40-
DustMite.html, DustMite Integration,
41-
BrowseInfo.html, Browse Info
42-
)
43-
$(MENU VersionHistory.html, Version History)
44-
$(MENU KnownIssues.html, Known Issues)
45-
$(MENU BuildFromSource.html, Building from Source)
46-
)
47-
)
48-
_=
49-
50-
D_S = $(LAYOUT ,$1,$(ARGS $+))
51-
SPEC_S = $(LAYOUT ,$1,$(ARGS $+))
52-
COMMUNITY= $(LAYOUT ,$1,$(ARGS $+))
53-
_=
54-
55-
LAYOUT=$3
56-
_=
57-
58-
SFINAE=$(GLOSSARY sfinae, $(ACRONYM SFINAE, Substitution Failure Is Not An Error))
59-
OBJ2ASM=$(HTTP digitalmars.com/ctg/obj2asm.html, obj2asm)
60-
DUMPOBJ=$(HTTP digitalmars.com/ctg/dumpobj.html, dumpobj)
61-
SHELL=$(HTTP digitalmars.com/ctg/shell.html, shell)
62-
_=
63-
64-
VISUALD = https://rainers.github.io/visuald/visuald/StartPage.html
65-
_=
66-
67-
AMAZONLINK= $(WEB amazon.com/exec/obidos/ASIN/$1/classicempire, $+)
68-
_=
69-
70-
_=
71-
72-
MIDRULE=
73-
_=
14+
IMG_CENTER = <div align="center"><img src="$0" /></div>
15+
TABLE_NOBORDER = <table style="border-width: 0px 0">$0</table>
16+
_=
17+
MENU_W_SUBMENU_OPEN = <li class='expand-container open'><a class='expand-toggle' href='#'><span>$0</span></a>
18+
19+
SUBNAV=$(SUBNAV_TEMPLATE
20+
$(SUBNAV_HEAD Visual D $(VERSION), StartPage.html, Home, subnav-duplicate)
21+
$(UL
22+
$(MENU StartPage.html, Home)
23+
$(MENU https://github.com/dlang/visuald/releases, Downloads)
24+
$(MENU Installation.html, Installation)
25+
$(MENU_W_SUBMENU_OPEN Tour)
26+
$(SUBMENU
27+
Features.html, Feature List,
28+
GlobalOptions.html, Global Options,
29+
ProjectWizard.html, Project Wizard,
30+
Editor.html, Editor,
31+
Search.html, Search Window,
32+
TokenReplace.html, Token Replace,
33+
ProjectConfig.html, Project Config,
34+
vcxproject.html, VC Project Integration,
35+
CppConversion.html, C++ to D,
36+
Debugging.html, Debugging,
37+
CompileCommands.html, Compile Commands,
38+
Profiling.html, Profiling,
39+
Coverage.html, Code Coverage,
40+
DustMite.html, DustMite Integration,
41+
BrowseInfo.html, Browse Info
42+
)
43+
$(MENU VersionHistory.html, Version History)
44+
$(MENU KnownIssues.html, Known Issues)
45+
$(MENU BuildFromSource.html, Building from Source)
46+
)
47+
)
48+
_=
49+
50+
D_S = $(LAYOUT ,$1,$(ARGS $+))
51+
SPEC_S = $(LAYOUT ,$1,$(ARGS $+))
52+
COMMUNITY= $(LAYOUT ,$1,$(ARGS $+))
53+
_=
54+
55+
LAYOUT=$3
56+
_=
57+
58+
SFINAE=$(GLOSSARY sfinae, $(ACRONYM SFINAE, Substitution Failure Is Not An Error))
59+
OBJ2ASM=$(HTTP digitalmars.com/ctg/obj2asm.html, obj2asm)
60+
DUMPOBJ=$(HTTP digitalmars.com/ctg/dumpobj.html, dumpobj)
61+
SHELL=$(HTTP digitalmars.com/ctg/shell.html, shell)
62+
_=
63+
64+
VISUALD = https://rainers.github.io/visuald/visuald/StartPage.html
65+
_=
66+
67+
AMAZONLINK= $(WEB amazon.com/exec/obidos/ASIN/$1/classicempire, $+)
68+
_=
69+
70+
_=
71+
72+
MIDRULE=
73+
_=

0 commit comments

Comments
 (0)