Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -1400,3 +1400,9 @@ Version history
2025-03-02 version 1.4.0-rc6
* now works with Visual Studio for Windows on ARM64
* installer now supports 4 parallel installations of VS 2022

2025-03-09 version 1.4.0
* added separate version of dbuild.dll linked against Microsoft.Build.CPPTasks.Common for VS 17.14
* mago: fixed showing intellisense information in tool tip while debugging in VS2022
* mago: expression evaluator now resolves identifiers of named enumerator types
* full installer now bundled with DMD 2.110.0 and LDC 1.40.0
12 changes: 9 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,11 @@ dbuild17_12:
dbuild17_13:
cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v17_13;Platform=AnyCPU /t:Rebuild

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
dbuild17_14:
cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v17_14;Platform=AnyCPU /t:Rebuild

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 dbuild17_14

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

install_release_modules: install_modules fake_dparser cv2pdb_vs17 mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc dbuild12 dbuild14 dbuild15
install_release_modules: install_modules visuald_vs_arm64 fake_dparser cv2pdb_vs17 \
mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc \
dbuild12 dbuild14 dbuild15

install_vs: install_release_modules install_only

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

install_modules: d_modules vdextension vdext15 visualdwizard dcxxfilt

d_modules: prerequisites visuald_vs visuald_vs_x64 visuald_vs_arm64 vdserver dmdserver
d_modules: prerequisites visuald_vs visuald_vs_x64 vdserver dmdserver

appveyor: d_modules cv2pdb_vs16 mago_vs16 magogc

Expand Down
17 changes: 2 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
This is the README file for Visual D, a
Visual Studio package providing both project management and language services

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

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

* Supported Visual Studio versions
- VS 2008 - VS 2019, Community, Professional or Enterprise versions

Express versions of Visual Studio do not support this
kind of extensions. If you need to use these old version, use the Visual Studio Shell instead:
- VS 2008 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=9771
- VS 2010 Shell: no longer available
- VS 2012 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=30670
+ http://www.microsoft.com/en-us/download/details.aspx?id=30663

If you are using the Visual Studio Shell 2008 or 2010, it misses one file,
that is needed for the conversion of the debug information by cv2pdb. This
is msobj80.dll for VS2008 and msobj100.dll for VS2010 and must be extracted
from a standard installation, the Visual C Express edition or the Windows SDK.
You might also find it installed by other Microsoft products.
- VS 2008 - VS 2022, Community, Professional or Enterprise versions

* Includes tools to
- convert some idl/h files of the Windows SDK to D
Expand Down
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define VERSION_MAJOR 1
#define VERSION_MINOR 4
#define VERSION_REVISION 0
#define VERSION_BETA -rc
#define VERSION_BUILD 6
#define VERSION_BETA
#define VERSION_BUILD 0
8 changes: 8 additions & 0 deletions c2d/cpp2d.d
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,14 @@ string fixNumber(string num)
return num[0..$-1];
if(endsWith(num, "L"))
return num[0..$-1];
if(endsWith(num, "ui8"))
return num[0..$-3];
if(endsWith(num, "ui16") || endsWith(num, "ui32"))
return num[0..$-4];
if(endsWith(num, "i8"))
return num[0..$-2];
if(endsWith(num, "i16") || endsWith(num, "i32"))
return num[0..$-3];
return num;
}

Expand Down
20 changes: 20 additions & 0 deletions c2d/idl2d.d
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ class idl2d
"dpa_dsa.h",
// Win SDK 10.0.18362.0
"fileapifromapp.h",
// Win SDK 10.0.26100.0
// "intsafe.h",
])
win_idl_files ~= f ~ "*"; // make it optional

Expand Down Expand Up @@ -580,6 +582,9 @@ class idl2d
case "GetLastError":
case "MF_END": // defined twice in winuser.h, but said to be obsolete
case "__int3264":
case "INT128_MIN":
case "INT128_MAX":
case "UINT128_MAX":
return 1;

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

if(currentModule == "winbase")
{
replaceTokenSequence(tokens, "#define CopyVolatileMemory$defs\n$defines\n#define ZeroDeviceMemory RtlZeroDeviceMemory\n", "", false);
}

if(currentModule == "windef")
{
// avoid removal of #define TRUE 1
Expand Down Expand Up @@ -1329,6 +1339,8 @@ version(all)
"/+ $* +/", true);
replaceTokenSequence(tokens, "FORCEINLINE PVOID ReadPointerAcquire $code WritePointerRaw($args) { $code2 }",
"/+ $* +/", true);
// win 10.0.26100.0: unused definitions before declaration
replaceTokenSequence(tokens, "#define __NtCurrentTebAddr$def_more\n$defines\n#endif", "#endif", true);
}

if(currentModule == "commctrl")
Expand Down Expand Up @@ -1432,6 +1444,11 @@ version(all)
{
replaceTokenSequence(tokens, "#ifndef INTEROPLIB\n[in] $ifcode\n#else\n$elsecode\n#endif", "[in] $ifcode", false);
}
if(currentModule.startsWith("textmgr"))
{
// declaration in textmgr.idl is in enum
replaceTokenSequence(tokens, "#define MAX_FILE_TYPE 24", "", false);
}

for(TokenIterator tokIt = tokens.begin(); tokIt != tokens.end; )
{
Expand Down Expand Up @@ -1983,6 +2000,7 @@ version(all) {
replaceTokenSequence(tokens, "__deref_out_xcount_opt($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "__deref_opt_out_bcount_full($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "__deref_inout_ecount_z($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Deref_out_range_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "__field_bcount($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "__field_bcount_opt($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "__field_ecount($args)", "/+$*+/", true);
Expand Down Expand Up @@ -2045,6 +2063,8 @@ version(all) {
replaceTokenSequence(tokens, "_Outptr_opt_result_bytebuffer_all_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Outptr_opt_result_buffer_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Releases_exclusive_lock_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Releases_nonreentrant_lock_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Acquires_nonreentrant_lock_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Releases_shared_lock_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Acquires_exclusive_lock_($args)", "/+$*+/", true);
replaceTokenSequence(tokens, "_Acquires_shared_lock_($args)", "/+$*+/", true);
Expand Down
16 changes: 9 additions & 7 deletions doc/StartPage.dd
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,15 @@ $(H2 News)
$(P $(LINK2 VersionHistory.html, Full version history and complete details...)
)

2025-03-14 Version 1.4.0
$(UL
$(LI fixed msbuild integration for VS 2022 17.5 - 17.14)
$(LI now works with Visual Studio for Windows on ARM64)
$(LI dmdserver updated to frontend of DMD 2.110.0, improved completion)
$(LI full installer now bundled with DMD 2.110.0 and LDC 1.40.0)
$(LI for better responsiveness mago debug extension now executes visualizer calls asynchronously)
)

2022-10-09 Version 1.3.1
$(UL
$(LI fixed memory leak in dmdserver)
Expand All @@ -99,13 +108,6 @@ $(P $(LINK2 VersionHistory.html, Full version history and complete details...)
$(LI full installer now bundled with DMD 2.100.0 and LDC 1.29.0)
)

2022-01-15 Version 1.2.0
$(UL
$(LI added support for VS 2022)
$(LI dmdserver updated to frontend of DMD 2.098.1)
$(LI full installer now bundled with DMD 2.098.1 and LDC 1.28.1)
)

$(LINK2 VersionHistory.html, more...)

$(H2 Download)
Expand Down
50 changes: 50 additions & 0 deletions doc/VersionHistory.dd
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
Ddoc

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

$(H2 2022-09-10 Version 1.3.1)
$(UL
$(LI full installer now bundled with DMD 2.100.2 and LDC 1.30.0)
Expand Down
142 changes: 71 additions & 71 deletions doc/visuald.ddoc
Original file line number Diff line number Diff line change
@@ -1,73 +1,73 @@
VERSION = 1.3.1
DMD_VERSION = 2.100.2
LDC_VERSION = 1.30.0
ROOT_DIR = https://www.dlang.org/
ROOT = https://www.dlang.org
BODYCLASS = visuald
PROJECT = visuald
WIKI = visuald
SELF_PATH =
LAYOUT_SUFFIX=

VERSION = 1.4.0
DMD_VERSION = 2.110.0
LDC_VERSION = 1.40.0
ROOT_DIR = https://www.dlang.org/
ROOT = https://www.dlang.org
BODYCLASS = visuald
PROJECT = visuald
WIKI = visuald
SELF_PATH =
LAYOUT_SUFFIX=
VDLINK=$(LINK2 $1.html, $2)
IMG = <img src="$0" />
IMG_CENTER = <div align="center"><img src="$0" /></div>
TABLE_NOBORDER = <table style="border-width: 0px 0">$0</table>
_=
MENU_W_SUBMENU_OPEN = <li class='expand-container open'><a class='expand-toggle' href='#'><span>$0</span></a>

SUBNAV=$(SUBNAV_TEMPLATE
$(SUBNAV_HEAD Visual D $(VERSION), StartPage.html, Home, subnav-duplicate)
$(UL
$(MENU StartPage.html, Home)
$(MENU https://github.com/dlang/visuald/releases, Downloads)
$(MENU Installation.html, Installation)
$(MENU_W_SUBMENU_OPEN Tour)
$(SUBMENU
Features.html, Feature List,
GlobalOptions.html, Global Options,
ProjectWizard.html, Project Wizard,
Editor.html, Editor,
Search.html, Search Window,
TokenReplace.html, Token Replace,
ProjectConfig.html, Project Config,
vcxproject.html, VC Project Integration,
CppConversion.html, C++ to D,
Debugging.html, Debugging,
CompileCommands.html, Compile Commands,
Profiling.html, Profiling,
Coverage.html, Code Coverage,
DustMite.html, DustMite Integration,
BrowseInfo.html, Browse Info
)
$(MENU VersionHistory.html, Version History)
$(MENU KnownIssues.html, Known Issues)
$(MENU BuildFromSource.html, Building from Source)
)
)
_=

D_S = $(LAYOUT ,$1,$(ARGS $+))
SPEC_S = $(LAYOUT ,$1,$(ARGS $+))
COMMUNITY= $(LAYOUT ,$1,$(ARGS $+))
_=

LAYOUT=$3
_=

SFINAE=$(GLOSSARY sfinae, $(ACRONYM SFINAE, Substitution Failure Is Not An Error))
OBJ2ASM=$(HTTP digitalmars.com/ctg/obj2asm.html, obj2asm)
DUMPOBJ=$(HTTP digitalmars.com/ctg/dumpobj.html, dumpobj)
SHELL=$(HTTP digitalmars.com/ctg/shell.html, shell)
_=

VISUALD = https://rainers.github.io/visuald/visuald/StartPage.html
_=

AMAZONLINK= $(WEB amazon.com/exec/obidos/ASIN/$1/classicempire, $+)
_=

_=

MIDRULE=
_=
IMG_CENTER = <div align="center"><img src="$0" /></div>
TABLE_NOBORDER = <table style="border-width: 0px 0">$0</table>
_=
MENU_W_SUBMENU_OPEN = <li class='expand-container open'><a class='expand-toggle' href='#'><span>$0</span></a>
SUBNAV=$(SUBNAV_TEMPLATE
$(SUBNAV_HEAD Visual D $(VERSION), StartPage.html, Home, subnav-duplicate)
$(UL
$(MENU StartPage.html, Home)
$(MENU https://github.com/dlang/visuald/releases, Downloads)
$(MENU Installation.html, Installation)
$(MENU_W_SUBMENU_OPEN Tour)
$(SUBMENU
Features.html, Feature List,
GlobalOptions.html, Global Options,
ProjectWizard.html, Project Wizard,
Editor.html, Editor,
Search.html, Search Window,
TokenReplace.html, Token Replace,
ProjectConfig.html, Project Config,
vcxproject.html, VC Project Integration,
CppConversion.html, C++ to D,
Debugging.html, Debugging,
CompileCommands.html, Compile Commands,
Profiling.html, Profiling,
Coverage.html, Code Coverage,
DustMite.html, DustMite Integration,
BrowseInfo.html, Browse Info
)
$(MENU VersionHistory.html, Version History)
$(MENU KnownIssues.html, Known Issues)
$(MENU BuildFromSource.html, Building from Source)
)
)
_=
D_S = $(LAYOUT ,$1,$(ARGS $+))
SPEC_S = $(LAYOUT ,$1,$(ARGS $+))
COMMUNITY= $(LAYOUT ,$1,$(ARGS $+))
_=
LAYOUT=$3
_=
SFINAE=$(GLOSSARY sfinae, $(ACRONYM SFINAE, Substitution Failure Is Not An Error))
OBJ2ASM=$(HTTP digitalmars.com/ctg/obj2asm.html, obj2asm)
DUMPOBJ=$(HTTP digitalmars.com/ctg/dumpobj.html, dumpobj)
SHELL=$(HTTP digitalmars.com/ctg/shell.html, shell)
_=
VISUALD = https://rainers.github.io/visuald/visuald/StartPage.html
_=
AMAZONLINK= $(WEB amazon.com/exec/obidos/ASIN/$1/classicempire, $+)
_=
_=
MIDRULE=
_=
Loading
Loading