├── .editorconfig
├── .gitattributes
├── .github
└── workflows
│ └── build-and-test.yml
├── .gitignore
├── .gitmodules
├── CHANGES
├── LICENSE.txt
├── Makefile
├── README.md
├── TODO
├── VERSION
├── appveyor.yml
├── build
├── build.visualdproj
├── dte_idl.bat
├── sdk.bat
└── sdk_libs.bat
├── build_doc.bat
├── c2d
├── Makefile
├── ast.d
├── c2d.vcproj
├── c2d.visualdproj
├── cgsched.sed
├── cpp2d.d
├── cpp2d.visualdproj
├── cpp2d_main.d
├── dgutil.d
├── dlist.d
├── dmd.c2d
├── dmd2d.d
├── dmd2d.mk
├── dmd2d_miss.cpp
├── dmd2dport.d
├── dmdgen.d
├── echoobj.mak
├── findbraces.awk
├── gendmd2d.awk
├── getsysinc.awk
├── idl2d.d
├── idl2d_main.d
├── j2d.d
├── patchast.d
├── pp.d
├── pp4d.d
├── pp4d.visualdproj
├── removepp.sed
├── tokenizer.d
├── tokutil.d
├── vsi2d.visualdproj
└── win32.h
├── dfmt
├── dfmt.visualdproj
├── githash.txt
└── package.d
├── doc
├── BrowseInfo.dd
├── BuildFromSource.dd
├── CompileCommands.dd
├── Coverage.dd
├── CppConversion.dd
├── Debugging.dd
├── DustMite.dd
├── Editor.dd
├── Features.dd
├── GlobalOptions.dd
├── Installation.dd
├── KnownIssues.dd
├── Profiling.dd
├── ProjectConfig.dd
├── ProjectWizard.dd
├── ReportingBugs.dd
├── Search.dd
├── StartPage.dd
├── TokenReplace.dd
├── VersionHistory.dd
├── css
│ ├── codemirror.css
│ ├── print.css
│ └── style.css
├── dlang.org.ddoc
├── favicon.ico
├── html.ddoc
├── images
│ ├── codesnippet.png
│ ├── colors.png
│ ├── colortest.png
│ ├── colortest2.png
│ ├── compile_and_run_opt.png
│ ├── compiledisasm.png
│ ├── compilemenu.png
│ ├── completion.png
│ ├── concord_mark.png
│ ├── coverage.png
│ ├── coverage_forever.png
│ ├── coveragemargin_forever.png
│ ├── cppwizard.png
│ ├── d_exceptions.png
│ ├── debug.png
│ ├── debugeval.png
│ ├── debugranges.png
│ ├── dlogo.svg
│ ├── dmd_directories.png
│ ├── doc_config.png
│ ├── download.png
│ ├── download_extension2.png
│ ├── download_with_dmdldc2.png
│ ├── editor-options.png
│ ├── extmanager.png
│ ├── fullvs.png
│ ├── import_completion.png
│ ├── intellisense_options.png
│ ├── intellisense_options2.png
│ ├── ldc_compiler.png
│ ├── newproject.png
│ ├── objectbrowser.PNG
│ ├── outlining.png
│ ├── parameterinfo.png
│ ├── parameterstorage.png
│ ├── parameterstorage2.png
│ ├── pastemenu.PNG
│ ├── profiler.png
│ ├── project_config.png
│ ├── projectwizard.png
│ ├── prop_codegen.png
│ ├── prop_debug.png
│ ├── prop_doc.png
│ ├── searchfile.png
│ ├── searchmenu.png
│ ├── searchsymbol.png
│ ├── showscope.png
│ ├── solutionexplorer.png
│ ├── strings.png
│ ├── syntaxerror.png
│ ├── tokenreplace.png
│ ├── tokenreplacemenu.png
│ ├── toolopt_project.png
│ ├── vcxproject.png
│ ├── vcxproject_general.png
│ ├── vd_logo.png
│ ├── versionhighlight.png
│ ├── visuald_menu.png
│ └── visuald_settings.png
├── js
│ ├── codemirror-compressed.js
│ ├── dlang.js
│ └── run.js
├── macros.ddoc
├── news36.dd
├── vcxproject.dd
└── visuald.ddoc
├── msbuild
├── ImportAfter
│ ├── d.targets
│ └── general_d.targets
├── ImportBefore
│ ├── Default
│ │ └── d.props
│ └── d.props
├── d.ico
├── d2.ico
├── dbuild.props
├── dbuild
│ ├── CompileD.cs
│ ├── CompileDOpt.cs
│ ├── MultiToolTaskVisualD.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Strings.resx
│ ├── VCProjectInterop.cs
│ ├── dbuild.csproj
│ └── dbuild.sln
├── dcompile.props
├── dcompile.targets
├── dcompile_defaults.props
├── di.ico
├── dmd.xml
├── general_d.snippet
└── ldc.xml
├── nsis
├── Extensions
│ ├── extension.vsixmanifest
│ ├── vdlogo.ico
│ └── visuald.pkgdef
├── Extensions_vs12
│ └── extension.vsixmanifest
├── Extensions_vs15
│ └── extension.vsixmanifest
├── LICENSE
├── dmdinstall.ini
├── register.bat
├── replaceinfile.nsh
├── uninstall_helper.nsh
├── unregister.bat
└── visuald.nsi
├── sdk
├── Makefile
├── port
│ ├── activdbg.d
│ ├── apiquery2.d
│ ├── apiset.d
│ ├── apisetcconv.d
│ ├── base.d
│ ├── bitfields.d
│ ├── cguid.d
│ ├── ctype.d
│ ├── dte.d
│ ├── excpt.d
│ ├── guiddef.d
│ ├── in6addr.d
│ ├── inaddr.d
│ ├── kernelspecs.d
│ ├── limits.d
│ ├── microsoft
│ │ └── visualstudio
│ │ │ └── interop.d
│ ├── mprapi.d
│ ├── msxml.d
│ ├── netioapi.d
│ ├── packoff.d
│ ├── packon.d
│ ├── poppack.d
│ ├── pp.d
│ ├── propidl.d
│ ├── pshpack1.d
│ ├── pshpack2.d
│ ├── pshpack4.d
│ ├── pshpack8.d
│ ├── registryroots.d
│ ├── rpc.d
│ ├── rpcdcep.d
│ ├── rpcndr.d
│ ├── servprov.d
│ ├── sharedvenusids.d
│ ├── specstrings.d
│ ├── stdarg.d
│ ├── stdlib.d
│ ├── stdole2.d
│ ├── stdole32.d
│ ├── string.d
│ ├── time.d
│ ├── tvout.d
│ ├── urlmon.d
│ ├── vapiempguids.d
│ ├── venuscmddef.d
│ ├── vsi.d
│ ├── vsversion_generated.d
│ └── winapifamily.d
├── sources
├── test.d
├── vsi.vcproj
└── vsi.visualdproj
├── stdext
├── array.d
├── com.d
├── container.d
├── ddocmacros.d
├── denseset.d
├── diffmyers.d
├── file.d
├── httpget.d
├── libconfig.d
├── path.d
├── registry.d
├── stdext.visualdproj
├── string.d
├── util.d
└── xml.d
├── tools
├── 7z
│ ├── 7za.exe
│ └── License.txt
├── build_dcxxfilt.bat
├── cmppull.d
├── dcxxfilt.d
├── filemonitor.d
├── largeadr.d
├── mb2utf16.d
├── nostacktrace.d
├── pipedmd.d
├── testpipe.d
├── tlb2idl.d
├── tlb2idl.vcproj
└── tracegc.d
├── vdc
├── abothe
│ ├── .gitignore
│ ├── DParserCOMServer.Tests
│ │ ├── DParserCOMServer.Tests.csproj
│ │ ├── Tests.cs
│ │ └── packages.config
│ ├── VDServer.sln
│ ├── comserver
│ │ ├── COM
│ │ │ ├── COMHelper.cs
│ │ │ ├── ExeCOMServer.cs
│ │ │ ├── NativeMethod.cs
│ │ │ ├── Program.cs
│ │ │ └── VDServerClassFactory.cs
│ │ ├── CodeSemantics
│ │ │ ├── AbstractVDServerTask.cs
│ │ │ ├── EditorDataProvider.cs
│ │ │ ├── IdentifierTypesGenerator.cs
│ │ │ ├── ReferencesListGenerator.cs
│ │ │ ├── SemanticExpansionsGenerator.cs
│ │ │ ├── SymbolDefinitionGenerator.cs
│ │ │ ├── TooltipGenerator.cs
│ │ │ └── VDServerCompletionDataGenerator.cs
│ │ ├── DParserCOMServer.csproj
│ │ ├── IVDServer.cs
│ │ ├── NodeToolTipContentGen.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── VDServer.cs
│ │ ├── VDServerEditorFlags.cs
│ │ └── VDserverParseCacheView.cs
│ ├── register.bat
│ └── testvd.d
├── ast
│ ├── aggr.d
│ ├── all.d
│ ├── decl.d
│ ├── expr.d
│ ├── iasm.d
│ ├── misc.d
│ ├── mod.d
│ ├── node.d
│ ├── stmt.d
│ ├── tmpl.d
│ ├── type.d
│ └── writer.d
├── dmdserver
│ ├── dmderrors.d
│ ├── dmdicon.ico
│ ├── dmdinit.d
│ ├── dmdlib.d
│ ├── dmdlocation.d
│ ├── dmdrmem.d
│ ├── dmdserver.d
│ ├── dmdserver.idl
│ ├── dmdserver.rc
│ ├── dmdserver.visualdproj
│ ├── semanalysis.d
│ └── semvisitor.d
├── gram_diff2.html
├── interpret.d
├── ivdserver.d
├── ivdserver.idl
├── lexer.d
├── logger.d
├── parser.visualdproj
├── parser
│ ├── aggr.d
│ ├── decl.d
│ ├── engine.d
│ ├── expr.d
│ ├── iasm.d
│ ├── misc.d
│ ├── mod.d
│ ├── stmt.d
│ └── tmpl.d
├── parsertest.d
├── semantic.d
├── semanticopt.d
├── util.d
├── vdserver.d
├── vdserver.idl
├── vdserver.rc
├── vdserver.reg
├── vdserver.visualdproj
├── vdserver_d.reg
├── vdserverfactory.d
└── versions.d
├── vdextensions
├── CoverageMargin.cs
├── ParamStorageAdornmentTagger.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── AssemblyInfo15.cs
├── gotodef.cs
├── quickinfo.cs
├── vdext15.cs
├── vdext15.csproj
├── vdextensions.cs
├── vdextensions.csproj
└── vdextensions.sln
├── vdwizard
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Resources
│ └── vd_logo.png
├── VDProjectWizard.cs
├── VisualDWizard.csproj
├── WizardDialog.Designer.cs
├── WizardDialog.cs
├── WizardDialog.resx
├── dwinproj.ico
└── key.snk
├── visuald
├── Makefile
├── Resources
│ ├── AlternateRowColor.ico
│ ├── CaseSensitive.ico
│ ├── Caseinsensitive.ico
│ ├── Caseinsensitive.xcf
│ ├── CombineColumns.ico
│ ├── DAboutBox.ico
│ ├── DAboutLogo.ico
│ ├── DImageList.bmp
│ ├── DSplashScreenIcon.bmp
│ ├── GroupByType.ico
│ ├── RegExp.ico
│ ├── SearchFile.ico
│ ├── SearchSymbol.ico
│ ├── WholeWord.ico
│ ├── ascend.ico
│ ├── closeOnReturn.ico
│ ├── closeOnReturn.xcf
│ ├── completionset.bmp
│ ├── dconsole.ico
│ ├── descend.ico
│ ├── dfile.ico
│ ├── difile.ico
│ ├── dub.ico
│ ├── dwinproj.ico
│ ├── faninout.ico
│ ├── fulldeco.ico
│ ├── pkgcmd.vsct
│ ├── refresh.ico
│ ├── removetrace.ico
│ ├── resources.h
│ └── settrace.ico
├── Templates
│ ├── CodeSnippets
│ │ ├── Snippets
│ │ │ ├── blockcomment.snippet
│ │ │ ├── class.snippet
│ │ │ ├── ctor.snippet
│ │ │ ├── else.snippet
│ │ │ ├── for.snippet
│ │ │ ├── if.snippet
│ │ │ ├── version.snippet
│ │ │ └── while.snippet
│ │ └── SnippetsIndex.xml
│ ├── Items
│ │ ├── empty.d
│ │ ├── hello.d
│ │ └── items.vsdir
│ ├── ProjectItems
│ │ ├── DUB
│ │ │ ├── minimal
│ │ │ │ ├── ConsoleApp.visualdproj
│ │ │ │ ├── app.d
│ │ │ │ ├── dub.sdl
│ │ │ │ └── minimal.vstemplate
│ │ │ └── vibe
│ │ │ │ ├── ServerApp.visualdproj
│ │ │ │ ├── app.d
│ │ │ │ ├── dub.json
│ │ │ │ └── dub_vibe_d.vstemplate
│ │ ├── VCProject
│ │ │ ├── VCProject.vstemplate
│ │ │ ├── WindowsApp.vcxproj
│ │ │ ├── WindowsApp.vcxproj.filters
│ │ │ ├── dwinproj.ico
│ │ │ ├── main.cpp
│ │ │ ├── main.d
│ │ │ ├── stdafx.cpp
│ │ │ └── stdafx.h
│ │ └── VDProject
│ │ │ ├── VDProject.vstemplate
│ │ │ ├── WindowsApp.visualdproj
│ │ │ ├── main.d
│ │ │ └── vdproj.ico
│ ├── ProjectItems_vs9
│ │ ├── ConsoleApp
│ │ │ ├── ConsoleApp.visualdproj
│ │ │ ├── ConsoleApp.vstemplate
│ │ │ └── main.d
│ │ ├── ConsoleDLG
│ │ │ ├── ConsoleApp.visualdproj
│ │ │ ├── ConsoleApp.vstemplate
│ │ │ └── main.d
│ │ ├── ConsoleDMDGDC
│ │ │ ├── ConsoleApp.visualdproj
│ │ │ ├── ConsoleApp.vstemplate
│ │ │ └── main.d
│ │ ├── ConsoleDMDLDC
│ │ │ ├── ConsoleApp.visualdproj
│ │ │ ├── ConsoleApp.vstemplate
│ │ │ └── main.d
│ │ ├── DUB
│ │ │ ├── minimal
│ │ │ │ ├── ConsoleApp.visualdproj
│ │ │ │ ├── app.d
│ │ │ │ ├── dub.sdl
│ │ │ │ └── minimal.vstemplate
│ │ │ └── vibe
│ │ │ │ ├── ServerApp.visualdproj
│ │ │ │ ├── app.d
│ │ │ │ ├── dub.json
│ │ │ │ └── dub_vibe_d.vstemplate
│ │ ├── DynamicLib
│ │ │ ├── DynamicLib.visualdproj
│ │ │ ├── DynamicLib.vstemplate
│ │ │ ├── dll.def
│ │ │ └── dllmain.d
│ │ ├── StaticLib
│ │ │ ├── StaticLib.visualdproj
│ │ │ ├── StaticLib.vstemplate
│ │ │ └── lib.d
│ │ └── WindowsApp
│ │ │ ├── WindowsApp.visualdproj
│ │ │ ├── WindowsApp.vstemplate
│ │ │ └── winmain.d
│ ├── Projects
│ │ ├── DTemplates.vsdir
│ │ ├── DUB
│ │ │ ├── DUBTemplates.VSTDIR
│ │ │ └── DUBTemplates.vsdir
│ │ └── DubTemplates.vsdir
│ ├── Projects_vs9
│ │ ├── VDTemplates.VSTDIR
│ │ └── VDTemplates.vsdir
│ ├── VCItems
│ │ └── ditems.vsdir
│ └── Wizards
│ │ └── package.vsz
├── automation.d
├── build.d
├── chiercontainer.d
├── chiernode.d
├── colorizer.d
├── completion.d
├── comutil.d
├── config.d
├── cppwizard.d
├── dimagelist.d
├── dlangsvc.d
├── dllmain.d
├── dpackage.d
├── dproject.d
├── expansionprovider.d
├── fileutil.d
├── getmsobj.d
├── help.d
├── hierarchy.d
├── hierutil.d
├── intellisense.d
├── lexutil.d
├── library.d
├── logutil.d
├── oledatasource.d
├── pkgutil.d
├── profiler.d
├── propertypage.d
├── register.d
├── searchsymbol.d
├── simpleparser.d
├── stringutil.d
├── taskprovider.d
├── tokenreplace.d
├── tokenreplacedialog.d
├── trackprojectdocument.d
├── updates.d
├── vdextensions.d
├── vdserverclient.d
├── viewfilter.d
├── visuald.def
├── visuald.rc
├── visuald.vcproj
├── visuald.visualdproj
├── vscommands.d
├── winctrl.d
├── windows.d
├── wmmsg.d
├── workaround.d
└── xmlwrap.d
└── visuald_vs10.sln
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.{c,h,d,di,dd}]
4 | end_of_line = crlf
5 | insert_final_newline = true
6 | indent_style = tab
7 | indent_size = 4
8 | trim_trailing_whitespace = true
9 | charset = utf-8
10 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.visualdproj eol=crlf
2 |
--------------------------------------------------------------------------------
/.github/workflows/build-and-test.yml:
--------------------------------------------------------------------------------
1 | name: build visuald
2 |
3 | on: [push, pull_request]
4 |
5 | env:
6 | # Path to the solution file relative to the root of the project.
7 | SOLUTION_FILE_PATH: src/visuald_vs10.vcxproj
8 |
9 | # Configuration type to build.
10 | BUILD_CONFIGURATION: Release
11 | BUILD_PLATFORM: x64
12 | BUILD_PLATFORM_TOOLSET: v142
13 |
14 | jobs:
15 | build:
16 | # windows-latest doesn't have .net framework 4.0
17 | runs-on: windows-2019
18 |
19 | steps:
20 | - name: Checkout visuald
21 | uses: actions/checkout@v3
22 | with:
23 | path: visuald/trunk
24 | submodules: recursive
25 | # - name: Checkout cv2pdb
26 | # uses: actions/checkout@v3
27 | # with:
28 | # repository: rainers/cv2pdb
29 | # path: cv2pdb/trunk
30 | # - name: Checkout mago
31 | # uses: actions/checkout@v3
32 | # with:
33 | # repository: rainers/mago
34 | # path: mago
35 | - name: Prepare D compiler
36 | uses: dlang-community/setup-dlang@v1
37 | with:
38 | compiler: dmd-2.098.1
39 | - name: Add MSBuild to PATH
40 | uses: microsoft/setup-msbuild@v1.0.2
41 | - name: Setup VS environment
42 | uses: seanmiddleditch/gha-setup-vsdevenv@v4
43 | - name: Download Visual D
44 | uses: supplypike/setup-bin@v1
45 | with:
46 | uri: 'https://github.com/dlang/visuald/releases/download/v1.3.0/VisualD-v1.3.0.exe'
47 | name: 'VisualD-v1.3.0.exe'
48 | version: '1.3.0'
49 | command: ./VisualD-v1.3.0.exe /S
50 | - name: Register visuald
51 | run: |
52 | reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64" /reg:32 /f
53 | reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64\dmd2" /reg:32 /f
54 | - name: Build visuald
55 | working-directory: visuald/trunk
56 | run: nmake d_modules
57 | - name: Upload binaries
58 | uses: actions/upload-artifact@v4
59 | if: failure()
60 | with:
61 | name: bin
62 | path: visuald/trunk/bin
63 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | /bin
3 | *.suo
4 | /sdk/lib
5 | /sdk/win32
6 | /sdk/sdk_libs
7 | /sdk/vsi_sources
8 | /sdk/vsi
9 | vdc/abothe/comserver/obj
10 | vdextensions/obj
11 | *.userprefs
12 | /msbuild/dbuild/obj
13 | /msbuild/dbuild/bin
14 | /msbuild/dbuild/.vs
15 | /test
16 | .vs
17 | /msbuild/dbuild/assemblies
18 | /vdextensions/assembly
19 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "vdc/abothe/Parser"]
2 | path = vdc/abothe/Parser
3 | url = https://github.com/rainers/D_Parser.git
4 | [submodule "vdc/dmdserver/dmd"]
5 | path = vdc/dmdserver/dmd
6 | url = https://github.com/rainers/dmd.git
7 | [submodule "dfmt/dfmt"]
8 | path = dfmt/dfmt
9 | url = https://github.com/rainers/dfmt.git
10 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Boost Software License - Version 1.0 - August 17th, 2003
2 |
3 | Permission is hereby granted, free of charge, to any person or organization
4 | obtaining a copy of the software and accompanying documentation covered by
5 | this license (the "Software") to use, reproduce, display, distribute,
6 | execute, and transmit the Software, and to prepare derivative works of the
7 | Software, and to permit third-parties to whom the Software is furnished to
8 | do so, all subject to the following:
9 |
10 | The copyright notices in the Software and this entire statement, including
11 | the above license grant, this restriction and the following disclaimer,
12 | must be included in all copies of the Software, in whole or in part, and
13 | all derivative works of the Software, unless such copies or derivative
14 | works are solely in the form of machine-executable object code generated by
15 | a source language processor.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 | DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | #define VERSION_MAJOR 1
2 | #define VERSION_MINOR 4
3 | #define VERSION_REVISION 1
4 | #define VERSION_BETA -beta
5 | #define VERSION_BUILD 3
6 |
--------------------------------------------------------------------------------
/build/dte_idl.bat:
--------------------------------------------------------------------------------
1 | rem @echo off
2 | rem expecting
3 | rem - tlb2idl.exe with path as the first argument
4 | rem - output file as second arg to remember build success
5 | rem - WindowsSdkDir to be set
6 |
7 | set TLB2IDL=%~1
8 | if "%TLB2IDL%" == "" (echo please specify the path to tlb2idl.exe as the first argument && exit /B 1)
9 | if not exist "%TLB2IDL%" (echo %1 does not exist && exit /B 1)
10 |
11 | set OUT=%~2
12 | if "%OUT%" == "" (echo please specify the output path to remember succesful builds as second argument && exit /B 1)
13 | if exist "%OUT%" del "%OUT%"
14 |
15 | set DTE_IDL_PATH=..\sdk\vsi\idl
16 | if not exist ..\sdk\vsi\nul md ..\sdk\vsi
17 | if not exist %DTE_IDL_PATH%\nul md %DTE_IDL_PATH%
18 |
19 | set MSENV=%COMMONPROGRAMFILES%\Microsoft Shared\MSEnv
20 | if not exist "%MSENV%\dte80.olb" set MSENV=%COMMONPROGRAMFILES(x86)%\Microsoft Shared\MSEnv
21 | if not exist "%MSENV%\dte80.olb" (echo "%MSENV%\dte80.olb" does not exist && exit /B 1)
22 |
23 | set IVIEWER=
24 | if "%IVIEWER%" == "" if exist "%WindowsSdkVerBinPath%\x86\iviewers.dll" set IVIEWER=%WindowsSdkVerBinPath%\x86\iviewers.dll
25 | if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\x86\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\x86\iviewers.dll
26 | if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\iviewers.dll
27 | if "%IVIEWER%" == "" if exist "%WindowsSdkDir%\bin\%WindowsSdkVersion%\x86\iviewers.dll" set IVIEWER=%WindowsSdkDir%\bin\%WindowsSdkVersion%\x86\iviewers.dll
28 | if "%IVIEWER%" == "" (echo "iviewer.dll" not found with WindowsSdkDir="%WindowsSdkDir%", WindowsSdkVersion=%WindowsSdkVersion% && exit /B 1)
29 |
30 | echo "%TLB2IDL%" "%MSENV%\dte80.olb" "%DTE_IDL_PATH%\dte80.idl" "%IVIEWER%"
31 |
32 | "%TLB2IDL%" "%MSENV%\dte80.olb" "%DTE_IDL_PATH%\dte80.idl" "%IVIEWER%"
33 | if errorlevel 1 exit /B 1
34 | "%TLB2IDL%" "%MSENV%\dte80a.olb" "%DTE_IDL_PATH%\dte80a.idl" "%IVIEWER%"
35 | if errorlevel 1 exit /B 1
36 | "%TLB2IDL%" "%MSENV%\dte90.olb" "%DTE_IDL_PATH%\dte90.idl" "%IVIEWER%"
37 | if errorlevel 1 exit /B 1
38 | echo Success > "%OUT%"
39 | exit /B 0
40 |
--------------------------------------------------------------------------------
/build/sdk.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem expecting
3 | rem - vsi2d.exe with path as the first argument
4 | rem - output file as second arg to remember build success
5 | rem - WindowsSdkDir to be set
6 |
7 | set VSI2D=%~1
8 | if "%VSI2D%" == "" (echo Error: please specify the path to vsi2d.exe as the first argument && exit /B 1)
9 | if not exist "%VSI2D%" (echo %1 does not exist && exit /B 1)
10 |
11 | set OUT=%~2
12 | if "%OUT%" == "" (echo Error: please specify the output path to remember succesful builds as second argument && exit /B 1)
13 | if exist "%OUT%" del "%OUT%"
14 |
15 | if "%WindowsSdkDir%" == "" (echo Error: environment variable WindowsSdkDir not set && exit /B 1)
16 |
17 | set DTE_IDL_PATH=..\sdk\vsi\idl
18 | if not exist ..\sdk\vsi\nul md ..\sdk\vsi
19 | if not exist ..\sdk\win32\nul md ..\sdk\win32
20 | if not exist %DTE_IDL_PATH%\nul md %DTE_IDL_PATH%
21 |
22 | if "%WindowsSDKVersion%" == "\" set WindowsSDKVersion=%UCRTVersion%
23 | if "%WindowsSDKVersion%" == "" set WindowsSDKVersion=%UCRTVersion%
24 | set WINSDKINC=
25 | if not "%WindowsSDKVersion%" == "" if exist "%WindowsSdkDir%\include\%WindowsSDKVersion%\um\windows.h" set WINSDKINC=%WindowsSdkDir%\include\%WindowsSDKVersion%
26 | if "%WINSDKINC%" == "" set WINSDKINC=%WindowsSdkDir%\include
27 | if not exist "%WINSDKINC%\windows.h" if not exist "%WINSDKINC%\um\windows.h" (echo Error: could not detect the Windows SDK && exit /B 1)
28 |
29 | set VSISDKINC=
30 | if "%VSISDKINC%" == "" if not "%VSSDK150Install%" == "" set VSISDKINC=%VSSDK150Install%
31 | if "%VSISDKINC%" == "" if not "%VSSDK140Install%" == "" set VSISDKINC=%VSSDK140Install%
32 | if "%VSISDKINC%" == "" if not "%VSSDK120Install%" == "" set VSISDKINC=%VSSDK120Install%
33 | if "%VSISDKINC%" == "" if not "%VSSDK110Install%" == "" set VSISDKINC=%VSSDK110Install%
34 | if "%VSISDKINC%" == "" if not "%VSSDK100Install%" == "" set VSISDKINC=%VSSDK100Install%
35 | if "%VSISDKINC%" == "" if not "%VSSDK90Install%" == "" set VSISDKINC=%VSSDK90Install%
36 | if "%VSISDKINC%" == "" if not "%VSSDK80Install%" == "" set VSISDKINC=%VSSDK80Install%
37 | if "%VSISDKINC%" == "" (echo Error: could not detect the Visual Studio SDK && exit /B 1)
38 |
39 | if not exist "%VSISDKINC%\VisualStudioIntegration\Common\Inc\textmgr.h" (echo unexpected Visual Studio SDK installation at "%VSISDKINC%" && exit /B 1)
40 |
41 | echo Translating Windows SDK and Visual Studio SDK to D, this can take several minutes. Please be patient.
42 | echo "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk
43 | "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk
44 | if errorlevel 1 exit /B 1
45 |
46 | echo Translation successful!
47 | echo Visual Studio might now prompt to reload the vsi project, but cannot do so because the build is still running.
48 | echo Please reload the solution manually.
49 | echo Success > "%OUT%"
50 | exit /B 0
51 |
--------------------------------------------------------------------------------
/build/sdk_libs.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem expecting
3 | rem - vsi2d.exe with path as the first argument
4 | rem - output file as second arg to remember build success
5 | rem - WindowsSdkDir to be set
6 |
7 | set VSI2D=%~1
8 | if "%VSI2D%" == "" (echo Error: please specify the path to vsi2d.exe as the first argument && exit /B 1)
9 | if not exist "%VSI2D%" (echo %1 does not exist && exit /B 1)
10 |
11 | set OUT=%~2
12 | if "%OUT%" == "" (echo Error: please specify the output path to remember succesful builds as second argument && exit /B 1)
13 | if exist "%OUT%" del "%OUT%"
14 |
15 | if not exist ..\sdk\lib\nul md ..\sdk\lib
16 |
17 | set LIBS=kernel32.lib user32.lib winspool.lib advapi32.lib
18 | set LIBS=%LIBS% comdlg32.lib gdi32.lib ole32.lib rpcrt4.lib shell32.lib winmm.lib
19 | set LIBS=%LIBS% wsock32.lib comctl32.lib oleaut32.lib ws2_32.lib odbc32.lib winhttp.lib onecore.lib
20 |
21 | echo WindowsSdkDir=%WindowsSdkDir%
22 | set WINSDKLIB=
23 | if "%WINSDKLIB%" == "" if exist "%WindowsSdkDir%\lib\%WindowsSDKLibVersion%\um\x86\kernel32.lib" set WINSDKLIB=%WindowsSdkDir%\lib\%WindowsSDKLibVersion%\um\x86
24 | if "%WINSDKLIB%" == "" if exist "%WindowsSdkDir%\lib\%WindowsSDKVersion%\um\x86\kernel32.lib" set WINSDKLIB=%WindowsSdkDir%\lib\%WindowsLibVersion%\um\x86
25 | if "%WINSDKLIB%" == "" if exist "%WindowsSdkDir%\lib\winv6.3\um\x86\kernel32.lib" set WINSDKLIB=%WindowsSdkDir%\lib\winv6.3\um\x86
26 | if "%WINSDKLIB%" == "" if exist "%WindowsSdkDir%\lib\win8\um\x86\kernel32.lib" set WINSDKLIB=%WindowsSdkDir%\lib\win8\um\x86
27 | if "%WINSDKLIB%" == "" if exist "%WindowsSdkDir%\lib\kernel32.lib" set WINSDKLIB=%WindowsSdkDir%\lib
28 | if "%WINSDKLIB%" == "" (echo Error: could not detect the Windows SDK library folder && exit /B 1)
29 |
30 | set COFFIMPLIB=c:\l\dmc\bin\coffimplib.exe
31 | if not exist %COFFIMPLIB% set COFFIMPLIB=%DMDInstallDir%\windows\bin\coffimplib.exe
32 | if not exist %COFFIMPLIB% set COFFIMPLIB=coffimplib
33 | %coffimplib% >nul 2>&1
34 | if errorlevel 9000 (echo Error: cannot execute %COFFIMPLIB%, please add to PATH && exit /B 1)
35 |
36 | for %%f in (%LIBS%) do (
37 | %COFFIMPLIB% "%WINSDKLIB%\%%f" ..\sdk\lib\%%f
38 | if errorlevel 1 exit /B 1
39 | )
40 |
41 | echo Success > "%OUT%"
42 | exit /B 0
43 |
--------------------------------------------------------------------------------
/build_doc.bat:
--------------------------------------------------------------------------------
1 | setlocal
2 | set DMD=c:\s\d\rainers\windows\bin\dmd.exe
3 | rem set WEB=m:\s\d\rainers\web\visuald
4 | set WEB=c:\s\d\visuald\gh-pages\visuald
5 | set CP=c:\u\gnuwin\cp.exe
6 |
7 | set SRC= doc/ReportingBugs.dd
8 | set SRC=%SRC% doc/StartPage.dd
9 | set SRC=%SRC% doc/ReportingBugs.dd
10 | set SRC=%SRC% doc/BuildFromSource.dd
11 | set SRC=%SRC% doc/KnownIssues.dd
12 | set SRC=%SRC% doc/Installation.dd
13 | set SRC=%SRC% doc/BrowseInfo.dd
14 | set SRC=%SRC% doc/Profiling.dd
15 | set SRC=%SRC% doc/Coverage.dd
16 | set SRC=%SRC% doc/CppConversion.dd
17 | set SRC=%SRC% doc/Debugging.dd
18 | set SRC=%SRC% doc/ProjectConfig.dd
19 | set SRC=%SRC% doc/TokenReplace.dd
20 | set SRC=%SRC% doc/Search.dd
21 | set SRC=%SRC% doc/Editor.dd
22 | set SRC=%SRC% doc/ProjectWizard.dd
23 | set SRC=%SRC% doc/GlobalOptions.dd
24 | set SRC=%SRC% doc/Features.dd
25 | set SRC=%SRC% doc/VersionHistory.dd
26 | set SRC=%SRC% doc/News36.dd
27 | set SRC=%SRC% doc/CompileCommands.dd
28 | set SRC=%SRC% doc/DustMite.dd
29 | set SRC=%SRC% doc/vcxproject.dd
30 |
31 | set DDOC=doc/macros.ddoc doc/html.ddoc doc/dlang.org.ddoc doc/visuald.ddoc
32 | rem ..\..\rainers\d-programming-language.org\dlang.org.ddoc
33 |
34 | if not exist %WEB% md %WEB%
35 | if not exist %WEB%\images md %WEB%\images
36 | %cp% -u doc/images/* %WEB%\images
37 |
38 | if not exist %WEB%\css md %WEB%\css
39 | %cp% -u doc/css/* %WEB%\css
40 |
41 | if not exist %WEB%\js md %WEB%\js
42 | %cp% -u doc/js/* %WEB%\js
43 |
44 | %cp% -u doc/favicon.ico %WEB%
45 |
46 | %DMD% -Dd%WEB% -o- -w %DDOC% %SRC%
47 |
48 |
--------------------------------------------------------------------------------
/c2d/cgsched.sed:
--------------------------------------------------------------------------------
1 |
2 | /__file__/d
3 |
4 | /static unsigned long oprw/,/;/s/\([^,]*\),\([^,]*\),/{\1,\2},/
5 |
6 | /static unsigned long grprw/,/;/{
7 | s/\([^,]*\),\([^,]*\),/{\1,\2},/
8 | s/\(\/\/ Grp 1\)/{\1/
9 | s/\(\/\/ Grp [35]\)/}, {\1/
10 | s/};/} };/
11 | }
12 |
13 | /static unsigned long grpf1/,/;/{
14 | s/\([^,]*\),\([^,]*\),/{\1,\2},/
15 | s/\(\/\/ 0xD8\)/{\1/
16 | s/\(\/\/ 0xD[9A-F]\)/}, {\1/
17 | s/};/} };/
18 | }
19 |
20 | /static unsigned char uopsgrpf1/,/;/{
21 | s/\([^,]*\),\([^,]*\),/{\1,\2},/
22 | s/\(\/\/ 0xD8\)/{\1/
23 | s/\(\/\/ 0xD[9A-F]\)/}, {\1/
24 | s/};/} };/
25 | }
26 |
--------------------------------------------------------------------------------
/c2d/dmd.c2d:
--------------------------------------------------------------------------------
1 | [Settings]
2 | inputType=0
3 | writeIntermediate=true
4 | outputDir=c:\tmp\d\dmd2
5 | inputDir=c:\tmp\d\dmd
6 | keywordPrefix=d_
7 | packagePrefix=dmd
8 | tabSize=8
9 |
10 | [inputFiles]
11 | *.h *.c
12 | -impcnvgen.c -idgen.c
13 | -libmach.c -libelf.c
14 | -toelfdebug.c -toir.c -iasm.c
15 | -utf.c
16 |
17 | [codePrefix]
18 | // converted
19 | module MODULENAME;
20 |
21 | import all;
22 |
23 | [versionDefines]
24 |
25 | [expandConditionals]
26 | _WIN32=1
27 | DMDV2=1
28 | DMDV1=0
29 | IN_GCC=0
30 | TARGET_WINDOS=1
31 | TARGET_OSX=0
32 | TARGET_LINUX=0
33 | TARGET_NET=0
34 | TARGET_FREEBSD=0
35 | TARGET_OPENBSD=0
36 | TARGET_SOLARIS=0
37 | OMFOBJ=1
38 | ELFOBJ=0
39 | MACHOBJ=0
40 | 0=0 1=1
41 | WINDOWS_SEH=0
42 | MEM_DEBUG=0
43 | X Y
44 | __DMC__=0
45 | STRUCTTHISREF=0
46 | DEBUG=1
47 | START
48 | PERFORM_UNITTEST=0
49 | UNA_INTERPRET
50 | ASSIGNEXP
51 | BIN_INTERPRET2
52 | BIN_INTERPRET
53 | BIN_ASSIGN_INTERPRET
54 | BIN_ASSIGN_INTERPRET_CTFE
55 | UNA_INTERPRET
56 | DOUBLE SINGLE
57 | ISTYPE ISDSYMBOL DUMP
58 |
59 | [userValueTypes]
60 | [userClassTypes]
61 |
62 | [replaceTokenPre]
63 | operator== => opEqual
64 | operator!= => opNotEqual
65 | operator bool => bool opCast
66 | operator* => opMul
67 | operator/ => opDiv
68 |
69 | [replaceTokenPost]
70 |
--------------------------------------------------------------------------------
/c2d/echoobj.mak:
--------------------------------------------------------------------------------
1 |
2 | include dmd\win32.mak
3 |
4 | echo_obj:
5 | echo $(OBJS)
6 |
--------------------------------------------------------------------------------
/c2d/findbraces.awk:
--------------------------------------------------------------------------------
1 | BEGIN{
2 | braces = 0;
3 | }
4 | {
5 | len=length($0);
6 | closing = "";
7 | for(p = 1; p <= len; p++)
8 | {
9 | if (substr($0,p,1) == "{")
10 | {
11 | braces++;
12 | open[braces] = NR;
13 | }
14 | if (substr($0,p,1) == "}")
15 | {
16 | closing = closing " " open[braces];
17 | braces--;
18 | }
19 | }
20 | printf("%d %s", braces, $0);
21 | if(closing != "")
22 | printf(" // closing %s", closing);
23 | printf("\n");
24 | }
25 |
--------------------------------------------------------------------------------
/c2d/getsysinc.awk:
--------------------------------------------------------------------------------
1 | BEGIN {
2 | sysindent = 0;
3 | }
4 |
5 | {
6 | if(substr($1,1,1) == "'")
7 | {
8 | indent = 0;
9 | while(substr($0,indent,1) == " ")
10 | indent++;
11 |
12 | if(sysindent == 0 || indent <= sysindent)
13 | {
14 | sysindent = 0;
15 | if(substr($1,2,length(DMC)) == DMC)
16 | {
17 | sysindent = indent;
18 | print "#include \"" substr($1,2,length($1) - 2) "\"";
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/c2d/idl2d_main.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 | //
9 | ///////////////////////////////////////////////////////////////////////
10 | //
11 | // idl2d - convert IDL or header files to D
12 | module c2d.idl2d_main;
13 | import c2d.idl2d;
14 |
15 | int main(string[] argv)
16 | {
17 | idl2d inst = new idl2d;
18 | return inst.main(argv);
19 | }
20 |
21 |
22 |
--------------------------------------------------------------------------------
/dfmt/githash.txt:
--------------------------------------------------------------------------------
1 | v0.13.2-3-ge6199aa
2 |
--------------------------------------------------------------------------------
/dfmt/package.d:
--------------------------------------------------------------------------------
1 | // integration of https://github.com/dlang-community/dfmt
2 |
3 | module dfmt;
4 | import dfmt.config : Config;
5 |
6 | pragma(mangle,"dfmt_format")
7 | pragma(inline, false) // could prevent semantic analysis with -inine, but does not
8 | bool dfmt_format(string source_desc, string buffer, ref string output)
9 | {
10 |
11 | Config* formatterConfig;
12 | Config config;
13 | if (!formatterConfig)
14 | {
15 | import dfmt.editorconfig;
16 |
17 | config.initializeWithDefaults();
18 | Config fileConfig = getConfigFor!Config(source_desc);
19 | fileConfig.pattern = "*.d";
20 | config.merge(fileConfig, source_desc);
21 | formatterConfig = &config;
22 | }
23 |
24 | try
25 | {
26 | import std.array;
27 | Appender!(char[]) app;
28 | app.reserve(buffer.length);
29 | bool rc = _format(source_desc, cast(ubyte[])buffer, app, formatterConfig);
30 | output = cast(string) app.data;
31 | return rc;
32 | }
33 | catch(Exception e)
34 | {
35 | output = buffer;
36 | return false;
37 | }
38 | }
39 |
40 | // same as dfmt.formatter.format, but with parser errors nuked
41 | bool _format(OutputRange)(string source_desc, ubyte[] buffer, OutputRange output, Config* formatterConfig)
42 | {
43 | import dparse.lexer;
44 | import dparse.parser;
45 | import dparse.rollback_allocator;
46 | import dfmt.formatter;
47 | import dfmt.ast_info;
48 | import dfmt.indentation;
49 | import dfmt.tokens;
50 | import dfmt.wrapping;
51 | import std.array;
52 |
53 | LexerConfig config;
54 | config.stringBehavior = StringBehavior.source;
55 | config.whitespaceBehavior = WhitespaceBehavior.skip;
56 | LexerConfig parseConfig;
57 | parseConfig.stringBehavior = StringBehavior.source;
58 | parseConfig.whitespaceBehavior = WhitespaceBehavior.skip;
59 | StringCache cache = StringCache(StringCache.defaultBucketCount);
60 | ASTInformation astInformation;
61 | RollbackAllocator allocator;
62 | auto parseTokens = getTokensForParser(buffer, parseConfig, &cache);
63 | auto mod = parseModule(parseTokens, source_desc, &allocator, &dump_message);
64 | auto visitor = new FormatVisitor(&astInformation);
65 | visitor.visit(mod);
66 | astInformation.cleanup();
67 | auto tokenRange = byToken(buffer, config, &cache);
68 | auto app = appender!(Token[])();
69 | for (; !tokenRange.empty(); tokenRange.popFront())
70 | app.put(tokenRange.front());
71 | auto tokens = app.data;
72 | if (!tokenRange.messages.empty)
73 | return false;
74 | auto depths = generateDepthInfo(tokens);
75 | auto tokenFormatter = TokenFormatter!OutputRange(buffer, tokens, depths,
76 | output, &astInformation, formatterConfig);
77 | tokenFormatter.format();
78 | return true;
79 | }
80 |
81 | void dump_message(string fileName , size_t line, size_t column, string message, bool isError)
82 | {
83 | }
84 |
--------------------------------------------------------------------------------
/doc/BrowseInfo.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P Quite a few functions of Visual D rely on proper browse information being generated by the compiler.
4 | These are files listing classes, functions, etc. and their types and source location. The file format
5 | used is JSON, that's why they are often referred to as JSON-files here. Generating these should be
6 | enabled on the project configuration page "Documentation":)
7 |
8 | $(IMG_CENTER images/prop_doc.png)
9 |
10 | $(P Apart from the browse information of the projects in the solutions, other JSON files can be stored
11 | in the directories given in the global options.)
12 |
13 | $(H2 Browse information for the standard runtime library)
14 |
15 | $(P To build browse information for the standard runtime library, you can use the command
16 | "Build phobos browse info" from the Visual D menu. This will compile the JSON files from
17 | the DMD installation given on the global options page.)
18 |
19 | $(P The files will be written to the first directory of the JSON paths specified on the same
20 | page. If none is given, a directory in the Visual D installation folder is used. Please make
21 | sure that you have write access to that directory.)
22 |
23 | $(H2 Object Browser and Class View)
24 |
25 | $(P The browse information read from the JSON files can now be explored by the Visual Studio
26 | Object Browser and Class View.)
27 |
28 | $(IMG_CENTER images/objectbrowser.PNG)
29 |
30 | Macros:
31 | TITLE=Browse Information
--------------------------------------------------------------------------------
/doc/Coverage.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P DMD comes with an option to instrument an executable for coverage analysis
4 | during its execution. You can enable it on the project configuration page "Code Generation".)
5 |
6 | $(IMG_CENTER images/prop_codegen.png)
7 |
8 | $(P With code coverage enabled the executable will record
9 | the source code lines that have been executed and will mark the lines that have
10 | code generated but are never executed. This information is written into files named as the
11 | source files but with extension ".lst".)
12 |
13 |
14 | $(P If you enable option "Colorize Coverage" in
15 | the Visual D colorizer settings (reachable through the "Open Language Options..." entry
16 | in the Visual D menu), these lines will be highlighted in the editor. The highlighting will not show
17 | up unless the lst-file is newer than the source file as it will probably be out of sync
18 | otherwise.
19 | )
20 |
21 | |
22 | $(IMG_CENTER images/coverage_forever.png)
23 | |
24 |
25 | $(P If you start editing the source file Visual D will try to keep coverage information in sync.
26 | If you want to get rid of the coverage coloring, just resave the source file.
27 | Visual D will assume the coverage is invalid then and stop displaying it.
28 | )
29 |
30 |
31 | $(P Enabling "Show coverage margin" on the same options page will add a column
32 | to the editor window that displays the exact coverage counters for each line.)
33 |
34 | $(P The very first line contains the percentage of covered source lines with generated
35 | code in the module.)
36 |
37 | $(P [Visual Studio 2008 displays the coverage margin as an overlay on the right side
38 | of the editor window.])
39 |
40 | |
41 | $(IMG_CENTER images/coveragemargin_forever.png)
42 | |
43 |
44 | This option can be combined with the "Compile and Run" command to easily test
45 | the code coverage of unittests within a module. See $(LINK2 News36.html, Unit testing and code coverage)
46 | for an example.
47 |
48 | Macros:
49 | TITLE=Code Coverage
50 |
51 |
--------------------------------------------------------------------------------
/doc/DustMite.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P Every now and then, you might run into a build problem that might look like a compiler issue.
4 | Your first step should be to search D's bug tracking system at $(LINK https://issues.dlang.org/).
5 | If that doesn't help you, you should consider filing a bug report yourself. This should
6 | include a reduced test case, so the people working on improving the compiler don't have
7 | to work through all your source code (if you can release it to the public to begin with).
8 | )
9 |
10 | $(P Starting with dmd 2.065, the DMD installation comes with a tool called DustMite that can help you
11 | minimize your source code to create the reduced test case. Setting up the environment to run
12 | DustMite can be tedious, so Visual D can help you for some use cases.
13 | )
14 |
15 | $(P If your build has failed with an unexpected error message or even internal compiler error, you
16 | can select the relevant error messsage in the Visual Studio build output window or focus the respective
17 | issue in the error list. Then select "DustMite Build Failure" from the Visual D menu. This will create
18 | a clean copy of the startup project alongside the project folder (so make sure that all files necessary
19 | for the build are actually referenced in the project). In addition the generated build script is added.
20 | )
21 |
22 | $(P DustMite will be run against this folder in a new console window, trying to find a minimal source code that still
23 | reproduces the error message. For larger code bases this process can take several hours. On success
24 | it will report the directory with the reduced source code.)
25 |
26 | $(H3 Limitations)
27 |
28 | $(UL
29 | $(LI The DustMite integration does not work with single file compilation as well as compilation of non D files.)
30 | $(LI A crashing compiler might cause messages to popup that have to be closed manually. See
31 | $(LINK https://github.com/CyberShadow/DustMite/wiki/Useful-test-scripts) for some
32 | ideas how to deal with this.)
33 | )
34 |
35 | You can read more about DustMite at $(LINK https://github.com/CyberShadow/DustMite/wiki).
36 |
37 | Macros:
38 | TITLE=Reducing Build Failures with DustMite
39 |
40 |
--------------------------------------------------------------------------------
/doc/Features.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(UL
4 | $(LI Project management
5 | $(UL
6 | $(LI all DMD command line options accessible)
7 | $(LI support for GDC and LDC)
8 | $(LI support for resource compiler)
9 | $(LI custom build commands)
10 | $(LI pre/post custom build steps)
11 | $(LI automatic dependency generation)
12 | $(LI automatic link between dependent projects)
13 | $(LI new project templates)
14 | $(LI msbuild integration with VC projects)
15 | )
16 | )
17 |
18 | $(LI Project management
19 | $(UL
20 | $(LI integrates cv2pdb and mago for seamless debugger integration)
21 | $(LI or plugs into the VS debug engine as a language extension)
22 | )
23 | )
24 | $(LI Language Service
25 | $(UL
26 | $(LI syntax highlighting with special version/debug and token string support)
27 | $(LI underlining of syntactical errors)
28 | $(LI word-completion through semantic analysis, buffer, or JSON compile info)
29 | $(LI import statement completion)
30 | $(LI goto definition (using semantic analysis or JSON file from compilation))
31 | $(LI parameter info tooltips)
32 | $(LI smart indentation)
33 | $(LI automatic brace completion)
34 | $(LI comment/uncomment selection)
35 | $(LI highlight/jump-to matching braces)
36 | $(LI code snippets)
37 | $(LI symbol/file search window)
38 | $(LI display of scope at caret position)
39 | $(LI code outlining)
40 | $(LI paste visually from clipboard ring)
41 | $(LI code definition window)
42 | $(LI search and replace dialog based on D tokenizer)
43 | $(LI browse information displayed in object browser and class view)
44 | $(LI code highlighting according to the code coverage output)
45 | )
46 | )
47 |
48 | $(LI Other
49 | $(UL
50 | $(LI C++ to D conversion wizard)
51 | $(LI Profiler window)
52 | $(LI Code Coverage display)
53 | $(LI Dustmite integration)
54 | )
55 | )
56 | $(LI Supported Visual Studio versions: VS 2008 - VS 2022 Community/Professional/Enterprise
57 | )
58 | $(LI sources include tools to
59 | $(UL
60 | $(LI convert some idl/h files of the Windows SDK to D)
61 | $(LI convert all idl/h files from the Visual Studio Integration SDK to D)
62 | $(LI convert C++ code to D (which was targeted at machine-translating)
63 | the DMD front end to D, but this was abandoned)
64 | $(LI convert Java code to D (which was targeted at machine-translating)
65 | parts of the Eclipse plugin Descent to D, but this was abandoned)
66 | )
67 | )
68 | $(LI Completely written in D
69 | $(UL
70 | $(LI source code available on github)
71 | )
72 | )
73 | )
74 |
75 |
76 | Macros:
77 | TITLE=Major Features
78 |
79 |
--------------------------------------------------------------------------------
/doc/Profiling.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P DMD comes with an option to instrument an executable for profiling its execution.
4 | You can enable it on the project configuration page "Code Generation".)
5 |
6 | $(IMG_CENTER images/prop_codegen.png)
7 |
8 | $(P Running the executable will create a file named trace.log in the current working
9 | directory. Opening the profiler window from the Visual D menu allows browsing the info
10 | in this file conveniently. You must specify the full path to the trace.log in the edit
11 | field at the top of the window.)
12 |
13 | $(IMG_CENTER images/profiler.png)
14 |
15 | $(P The toolbar at the top is used to)
16 | $(UL
17 | $(LI enable/disable alternate color display for the rows)
18 | $(LI enable/disable automatic closing of the profiler window if you jump to a function by double-clicking
19 | its list entry)
20 | $(LI enable/disable display of full type information of the functions)
21 | $(LI enable/disable display of function fan in/out, i.e. which functions are called by the selected
22 | function and which functions are calling it)
23 | $(LI guess the location of the trace.log file from the current startup project and its debugging settings)
24 | $(LI remove the trace.log file from disk to start a new profiling session (without removing the file multiple
25 | runs of the executable accumulate statistics in the log file))
26 | $(LI refresh display from the trace.log file)
27 | )
28 |
29 | $(P The times in the function list are displayed in microseconds.)
30 | $(UL
31 | $(LI Tree time: time spent executing the function including functions called)
32 | $(LI Func time: time spent executing the function excluding functions called)
33 | $(LI Call time: Func time/Calls)
34 | )
35 |
36 | $(P Double-clicking a line in the function list tries to jump to the corresponding
37 | source code line. This relies on appropriate information found in generated JSON files.)
38 |
39 | $(P Double clicking a line in the caller/callee lists selects the function in the function
40 | list, so you can navigate through the call tree.)
41 |
42 | Macros:
43 | TITLE=Profiling
44 |
45 |
--------------------------------------------------------------------------------
/doc/ProjectConfig.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P The project configuration is similar to what you know from other languages:)
4 |
5 | $(IMG_CENTER images/project_config.png)
6 |
7 | $(P Available macro replacements enclosed in $(DOLLAR)():)
8 | $(UL
9 | $(LI DMDINSTALLDIR: DMD Install path)
10 | $(LI WINDOWSSDKDIR: Windows SDK Directory)
11 | $(LI DEVENVDIR: Directory of Visual Studio executable devenv.exe)
12 | $(LI VSINSTALLDIR: Root directory of Visual Studio installation)
13 | $(LI VISUALDINSTALLDIR: Installation folder of Visual D)
14 | $(LI PLATFORMNAME: always Win32)
15 | $(LI CONFIGURATIONNAME)
16 | $(LI OUTDIR: Ouptut path)
17 | $(LI INTDIR: Intermediate path)
18 | $(LI INPUTPATH/DIR/FILENAME/EXT/NAME: input file/project file components)
19 | $(LI PROJECTPATH/DIR/FILENAME/EXT/NAME: project file components)
20 | $(LI SOLUTIONPATH/DIR/FILENAME/EXT/NAME: solution file components)
21 | $(LI TARGETPATH/DIR/FILENAME/EXT/NAME: target file components)
22 | $(LI any variable from the system environment)
23 | )
24 |
25 | $(H2 Documentation generation using CanDyDOC)
26 |
27 | If you want to use $(LINK2 http://www.dsource.org/projects/helix/wiki/CandyDoc, CanDyDOC) for documentation generation,
28 | you need to create a ddoc file that contains the list of modules. Visual D can automatically create this file.
29 | Here is how you can setup a project:
30 | $(UL
31 | $(LI Create the documentation directory and copy the candydoc directory from the distribution into the documentation directory.)
32 | $(LI Add the file candy.ddoc from the candydoc directory to the project.)
33 | $(LI On the documentation configuration page, enable documentation, set the documentation directory)
34 | $(LI Specify a CanDyDOC module file that is generated by Visual D)
35 | )
36 |
37 | $(IMG_CENTER images/doc_config.png)
38 |
39 | Macros:
40 | TITLE=Project Configuration
--------------------------------------------------------------------------------
/doc/ProjectWizard.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | To create a new Project, navigate to the menu File -> New -> Project and select the "D" entry in
4 | the "Other Languages" branch. There are two template types to select from.
5 |
6 | $(BR)
7 | $(BR)
8 | $(IMG_CENTER images/newproject.png)
9 | $(BR)
10 |
11 | The first entry selects a project based on Visual C++ for $(LINK2 vcxproject.html, seamless integration with C++).
12 |
13 | With the second entry a project using $(LINK2 projectconfig.html, Visual D's project type)
14 | dedicated to the D programming language is chosen.
15 |
16 | Both types use a wizard dialog to configure the generated projects:
17 |
18 | $(BR)
19 | $(BR)
20 | $(IMG_CENTER images/projectwizard.png)
21 | $(BR)
22 |
23 | Options GDC and OMF are not available for the Visual C++ project types.
24 |
25 | Macros:
26 | TITLE=Project Wizard
27 |
--------------------------------------------------------------------------------
/doc/ReportingBugs.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | = Reporting Bugs =
4 |
5 | Once in a while, you might be confronted with unexpected behaviour by Visual D. This can be some misunderstanding, a slight inconvenience, a clear bug or even a crash.
6 |
7 | Please check the list of [wiki:KnownIssues known issues] and the list of $(LINK2 http://www.dsource.org/projects/visuald/report/1 open bugs and enhancements] in the issue tracker. You might also want to browse the list of [http://www.dsource.org/projects/visuald/query?status=closed&order=priority closed issues) to see if it is a regression or actually desired behaviour.
8 |
9 | Please enter new issues as a $(LINK2 http://www.dsource.org/projects/visuald/newticket new ticket) into the tracking system.
10 |
11 | == Reporting with crash dumps ==
12 |
13 | Sometimes, a bug is not easily reproducable on every system. Especially if the application freezes or crashes, a process dump can be very helpful to analyze the problem without having direct access to the system.
14 |
15 | === Using procdump ===
16 |
17 | To create a process dump, download $(LINK2 http://technet.microsoft.com/en-us/sysinternals/dd996900 ProcDump) and install it on your system. Open a console window and change to the installation directory of procdump.
18 |
19 | If you are experiencing freezes while using Visual D in Visual Studio, just run
20 | {{{
21 | procdump devenv.exe
22 | }}}
23 | to create a snapshot of the frozen application.
24 |
25 | If Visual Studio crashes from time to time you should start procdump with option "-e"
26 | {{{
27 | procdump -e devenv.exe
28 | }}}
29 | while Visual Studio is running. This will create a process dump when an unhandled exception is detected, i.e. the application crashes.
30 |
31 | Procdump will report the dump-file that it created:
32 | {{{
33 | C:\Programme\Sysinternals>procdump.exe devenv.exe
34 |
35 | ProcDump v4.0 - Writes process dump files
36 | Copyright (C) 2009-2011 Mark Russinovich
37 | Sysinternals - www.sysinternals.com
38 |
39 | Writing dump file C:\Programme\Sysinternals\devenv_110909_104402.dmp ...
40 | Dump written.
41 | }}}
42 |
43 | Unfortunately, the file created will be too large to be attached to the report in the tracking system, so please add a download link for the dump file to the issue.
44 |
45 | === Using procexp ===
46 |
47 | As an alternative to creating process dumps of frozen applications via procdump from the command line, you can also use the process explorer $(LINK2 http://technet.microsoft.com/en-us/sysinternals/bb896653 procexp) to do this interactively. Right-click the frozen process in the process tree and select "Create Dump".
48 |
49 | This is especially useful if the installer freezes when running the registration through rundll32.exe, because there are often multiple processes with that name.
50 |
51 |
--------------------------------------------------------------------------------
/doc/Search.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P The search window helps you finding files in larger projects or symbol definitions.
4 | The window can be opened through the Visual D menu. It is more convenient to assign keyboard
5 | shortcuts to the commands "VisualD.!SearchFile" and "VisualD.!SearchSymbol".)
6 |
7 | $(IMG_CENTER images/visuald_menu.png)
8 |
9 | $(P The Visual D Search window operates in two modes, switchable by the first two icons of its toolbar:)
10 |
11 | $(H2 Search File)
12 |
13 | $(P In this mode all files in the Visual Studio solution are searched for the words given in the edit field.)
14 |
15 | $(IMG_CENTER images/searchfile.png)
16 |
17 | $(H2 Search Symbol )
18 |
19 | $(P This mode searches the symbols found in generated JSON files for the words given in the edit field.)
20 |
21 | $(IMG_CENTER images/searchsymbol.png)
22 |
23 | Macros:
24 | TITLE=Search Window
25 |
--------------------------------------------------------------------------------
/doc/TokenReplace.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P Visual D features a search and replace dialog that can be used to do replacements based on the
4 | tokenizer used by Visual D for syntax highlighting. The dialog can be opened through the Visual D menu:)
5 |
6 | $(IMG_CENTER images/tokenreplacemenu.png)
7 |
8 | $(P A token consists of the actual lexical D element and any preceding white spaces including comments.
9 | The search and replacement texts are tokenized according to the D language, matching the result against
10 | the tokenized source text ignoring syntactically unimportant text like comments and line breaks. Brace
11 | matching is supported, allowing to match nested expressions nicely.)
12 |
13 | $(P Here is an example:)
14 |
15 | $(IMG_CENTER images/tokenreplace.png)
16 |
17 | $(P Executing 'Replace All' will exchange the arguments of all calls and declarations of function 'fun'
18 | in the current document, even if the arguments span multiple lines and include nested expressions.)
19 |
20 | $(P The search text allows some special $ tokens:)
21 | $(UL
22 | $(LI $(DOLLAR)_numNAME - any integer literal)
23 | $(LI $(DOLLAR)_identNAME - any identifier (no keywords))
24 | $(LI $(DOLLAR)_dotidentNAME - any identifier.identifier pair)
25 | $(LI $(DOLLAR)_exprNAME - any sequence of brace matched tokens terminated by closing bracket or ";")
26 | $(LI $(DOLLAR)_notNAME - any token not matching the following token )
27 | $(LI $(DOLLAR)_optNAME - the following token or nothing)
28 | $(LI $(DOLLAR)NAME - any sequence of tokens greedily stopped by the following token)
29 | $(LI token$(DOLLAR)NAME - any token starting with "token")
30 | )
31 |
32 | $(P NAME can be any alpha numeric identifier.)
33 |
34 | $(P Any $(DOLLAR)-token used in the replacement string is replaced with the identically named capture
35 | from the matched search string. $(DOLLAR)* is relaced by the the whole matched string.)
36 |
37 | Macros:
38 | TITLE=Token Search and Replace
--------------------------------------------------------------------------------
/doc/css/print.css:
--------------------------------------------------------------------------------
1 |
2 | body
3 | {
4 | background: white;
5 | }
6 |
7 | pre
8 | {
9 | overflow: visible;
10 | overflow-X: hidden;
11 | font-size: 100%;
12 | }
13 |
14 | #search-box,
15 | #header,
16 | #navigation,
17 | #lastupdate,
18 | #tools,
19 | #footernav,
20 | #copyright,
21 | #github-ribbon,
22 | #top,
23 | .page-contents
24 | {
25 | display: none;
26 | }
27 |
28 | div#content
29 | {
30 | background: white;
31 | border: 0;
32 | margin: 0;
33 | padding: 0;
34 | font-family: serif;
35 | font-size: 10pt;
36 | }
37 |
--------------------------------------------------------------------------------
/doc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/favicon.ico
--------------------------------------------------------------------------------
/doc/images/codesnippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/codesnippet.png
--------------------------------------------------------------------------------
/doc/images/colors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/colors.png
--------------------------------------------------------------------------------
/doc/images/colortest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/colortest.png
--------------------------------------------------------------------------------
/doc/images/colortest2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/colortest2.png
--------------------------------------------------------------------------------
/doc/images/compile_and_run_opt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/compile_and_run_opt.png
--------------------------------------------------------------------------------
/doc/images/compiledisasm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/compiledisasm.png
--------------------------------------------------------------------------------
/doc/images/compilemenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/compilemenu.png
--------------------------------------------------------------------------------
/doc/images/completion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/completion.png
--------------------------------------------------------------------------------
/doc/images/concord_mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/concord_mark.png
--------------------------------------------------------------------------------
/doc/images/coverage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/coverage.png
--------------------------------------------------------------------------------
/doc/images/coverage_forever.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/coverage_forever.png
--------------------------------------------------------------------------------
/doc/images/coveragemargin_forever.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/coveragemargin_forever.png
--------------------------------------------------------------------------------
/doc/images/cppwizard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/cppwizard.png
--------------------------------------------------------------------------------
/doc/images/d_exceptions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/d_exceptions.png
--------------------------------------------------------------------------------
/doc/images/debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/debug.png
--------------------------------------------------------------------------------
/doc/images/debugeval.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/debugeval.png
--------------------------------------------------------------------------------
/doc/images/debugranges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/debugranges.png
--------------------------------------------------------------------------------
/doc/images/dmd_directories.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/dmd_directories.png
--------------------------------------------------------------------------------
/doc/images/doc_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/doc_config.png
--------------------------------------------------------------------------------
/doc/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/download.png
--------------------------------------------------------------------------------
/doc/images/download_extension2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/download_extension2.png
--------------------------------------------------------------------------------
/doc/images/download_with_dmdldc2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/download_with_dmdldc2.png
--------------------------------------------------------------------------------
/doc/images/editor-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/editor-options.png
--------------------------------------------------------------------------------
/doc/images/extmanager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/extmanager.png
--------------------------------------------------------------------------------
/doc/images/fullvs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/fullvs.png
--------------------------------------------------------------------------------
/doc/images/import_completion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/import_completion.png
--------------------------------------------------------------------------------
/doc/images/intellisense_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/intellisense_options.png
--------------------------------------------------------------------------------
/doc/images/intellisense_options2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/intellisense_options2.png
--------------------------------------------------------------------------------
/doc/images/ldc_compiler.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/ldc_compiler.png
--------------------------------------------------------------------------------
/doc/images/newproject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/newproject.png
--------------------------------------------------------------------------------
/doc/images/objectbrowser.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/objectbrowser.PNG
--------------------------------------------------------------------------------
/doc/images/outlining.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/outlining.png
--------------------------------------------------------------------------------
/doc/images/parameterinfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/parameterinfo.png
--------------------------------------------------------------------------------
/doc/images/parameterstorage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/parameterstorage.png
--------------------------------------------------------------------------------
/doc/images/parameterstorage2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/parameterstorage2.png
--------------------------------------------------------------------------------
/doc/images/pastemenu.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/pastemenu.PNG
--------------------------------------------------------------------------------
/doc/images/profiler.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/profiler.png
--------------------------------------------------------------------------------
/doc/images/project_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/project_config.png
--------------------------------------------------------------------------------
/doc/images/projectwizard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/projectwizard.png
--------------------------------------------------------------------------------
/doc/images/prop_codegen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/prop_codegen.png
--------------------------------------------------------------------------------
/doc/images/prop_debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/prop_debug.png
--------------------------------------------------------------------------------
/doc/images/prop_doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/prop_doc.png
--------------------------------------------------------------------------------
/doc/images/searchfile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/searchfile.png
--------------------------------------------------------------------------------
/doc/images/searchmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/searchmenu.png
--------------------------------------------------------------------------------
/doc/images/searchsymbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/searchsymbol.png
--------------------------------------------------------------------------------
/doc/images/showscope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/showscope.png
--------------------------------------------------------------------------------
/doc/images/solutionexplorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/solutionexplorer.png
--------------------------------------------------------------------------------
/doc/images/strings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/strings.png
--------------------------------------------------------------------------------
/doc/images/syntaxerror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/syntaxerror.png
--------------------------------------------------------------------------------
/doc/images/tokenreplace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/tokenreplace.png
--------------------------------------------------------------------------------
/doc/images/tokenreplacemenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/tokenreplacemenu.png
--------------------------------------------------------------------------------
/doc/images/toolopt_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/toolopt_project.png
--------------------------------------------------------------------------------
/doc/images/vcxproject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/vcxproject.png
--------------------------------------------------------------------------------
/doc/images/vcxproject_general.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/vcxproject_general.png
--------------------------------------------------------------------------------
/doc/images/vd_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/vd_logo.png
--------------------------------------------------------------------------------
/doc/images/versionhighlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/versionhighlight.png
--------------------------------------------------------------------------------
/doc/images/visuald_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/visuald_menu.png
--------------------------------------------------------------------------------
/doc/images/visuald_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/doc/images/visuald_settings.png
--------------------------------------------------------------------------------
/doc/macros.ddoc:
--------------------------------------------------------------------------------
1 | _=Fundamental macros that apply to all generated formats
2 |
3 | ARGS = $0
4 | COMMA = ,
5 | COMMENT =
6 | DOLLAR = $
7 | LPAREN = (
8 | RPAREN = )
9 | TAIL = $+
10 | _=
11 |
--------------------------------------------------------------------------------
/doc/vcxproject.dd:
--------------------------------------------------------------------------------
1 | Ddoc
2 |
3 | $(P With Visual D 0.44 integration with Visual C/C++ projects has been added. This means that
4 | you can just add your D files into any C/C++ project and it will be compiled and linked
5 | with everything else in the project.)
6 |
7 | $(P The project properties will be extended by a "D Compiler" section:)
8 |
9 | 
10 |
11 | $(P The General Page allows to select between DMD and LDC as the D compiler to be used by the current configuration.)
12 |
13 | $(IMG_CENTER images/vcxproject_general.png)
14 |
15 | $(P A couple of things to note:)
16 | $(UL
17 | $(LI Only COFF files are generated, there is no support for OMF files that DMD generates for Win32 by default.)
18 | $(LI Selecting the C runtime library is supported starting with DMD 2.073)
19 | $(LI The D project templates include a console application template based on a VC project, but just containing a D file.)
20 | )
21 |
22 | Macros:
23 | TITLE=Visual C/C++ Project Integration
24 |
--------------------------------------------------------------------------------
/doc/visuald.ddoc:
--------------------------------------------------------------------------------
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 |
12 | VDLINK=$(LINK2 $1.html, $2)
13 | IMG =
14 | IMG_CENTER = 
15 | TABLE_NOBORDER =
16 | _=
17 | MENU_W_SUBMENU_OPEN = $0
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 | _=
74 |
--------------------------------------------------------------------------------
/msbuild/ImportAfter/d.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/msbuild/ImportAfter/general_d.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Project
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/msbuild/ImportBefore/Default/d.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(registry:HKEY_LOCAL_MACHINE\SOFTWARE\VisualD@msbuild)
6 | $(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VisualD@msbuild)
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/msbuild/ImportBefore/d.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/msbuild/d.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/msbuild/d.ico
--------------------------------------------------------------------------------
/msbuild/d2.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/msbuild/d2.ico
--------------------------------------------------------------------------------
/msbuild/dbuild.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
18 |
19 | $(MSBuildThisFileDirectory)dmd2\
20 | $(MSBuildThisFileDirectory)ldc2\
21 | $(MSBuildThisFileDirectory)msbuild\
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/msbuild/dbuild/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("dbuild")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("dbuild")]
13 | [assembly: AssemblyCopyright("")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.*")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/msbuild/dcompile.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/msbuild/di.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/msbuild/di.ico
--------------------------------------------------------------------------------
/msbuild/general_d.snippet:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/nsis/Extensions/extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Visual D
8 | Rainer Schuetze
9 | VDVERSION
10 | Extension to provide support for the D programming language.
11 | 1033
12 | http://rainers.github.io/visuald/visuald/StartPage.html
13 | http://rainers.github.io/visuald/visuald/StartPage.html
14 | true
15 | vdlogo.ico
16 | vdlogo.ico
17 |
18 |
19 | Ultimate
20 | Premium
21 | Pro
22 | IntegratedShell
23 | VSTS
24 | VSTD
25 |
26 |
27 | Ultimate
28 | Premium
29 | Pro
30 | IntegratedShell
31 | VSTS
32 | VSTD
33 |
34 |
35 | Community
36 | Pro
37 | IntegratedShell
38 | VSTS
39 | VSTD
40 |
41 |
42 | Community
43 | Pro
44 | IntegratedShell
45 | VSTS
46 | VSTD
47 |
48 |
49 | Community
50 | Pro
51 | IntegratedShell
52 | VSTS
53 | VSTD
54 |
55 |
56 |
57 |
58 |
59 |
60 | visuald.pkgdef
61 | VDINSTALLPATH\vdextensions.dll
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/nsis/Extensions/vdlogo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/nsis/Extensions/vdlogo.ico
--------------------------------------------------------------------------------
/nsis/Extensions/visuald.pkgdef:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/nsis/Extensions/visuald.pkgdef
--------------------------------------------------------------------------------
/nsis/Extensions_vs12/extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vdlogo.ico
6 | vdlogo.ico
7 | Visual D
8 | Extension to provide support for the D programming language
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
27 | NuGet.VisualStudio.TemplateWizard
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/nsis/Extensions_vs15/extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vdlogo.ico
6 | vdlogo.ico
7 | Visual D
8 | Extension to provide support for the D programming language
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
29 | NuGet.VisualStudio.TemplateWizard
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/nsis/LICENSE:
--------------------------------------------------------------------------------
1 | Boost Software License - Version 1.0 - August 17th, 2003
2 |
3 | Permission is hereby granted, free of charge, to any person or organization
4 | obtaining a copy of the software and accompanying documentation covered by
5 | this license (the "Software") to use, reproduce, display, distribute,
6 | execute, and transmit the Software, and to prepare derivative works of the
7 | Software, and to permit third-parties to whom the Software is furnished to
8 | do so, all subject to the following:
9 |
10 | The copyright notices in the Software and this entire statement, including
11 | the above license grant, this restriction and the following disclaimer,
12 | must be included in all copies of the Software, in whole or in part, and
13 | all derivative works of the Software, unless such copies or derivative
14 | works are solely in the form of machine-executable object code generated by
15 | a source language processor.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 | DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/nsis/dmdinstall.ini:
--------------------------------------------------------------------------------
1 | [Settings]
2 | NumFields=7
3 |
4 | [Field 1]
5 | Type=DirRequest
6 | State=DirRequest
7 | Left=10
8 | Right=240
9 | Top=68
10 | Bottom=80
11 |
12 | [Field 4]
13 | Type=Label
14 | Text=You can download the latest D-Compiler from the
15 | Left=10
16 | Right=170
17 | Top=6
18 | Bottom=14
19 |
20 | [Field 2]
21 | Type=Link
22 | Text=D Language
23 | State=http://dlang.org/download.html
24 | Left=170
25 | Right=210
26 | Top=6
27 | Bottom=14
28 |
29 | [Field 3]
30 | Type=Label
31 | Text=website.
32 | Left=210
33 | Right=240
34 | Top=6
35 | Bottom=14
36 |
37 | [Field 6]
38 | Type=Label
39 | Text=Please specify the DMD installation folder that contains subdirectories html, windows and src.
40 | Left=10
41 | Right=240
42 | Top=34
43 | Bottom=50
44 |
45 | [Field 7]
46 | Type=Label
47 | Text=This setting can be changed from within Visual Studio later on the Tools->Options->Projects->Visual D Settings->DMD Directories page.
48 | Left=10
49 | Right=234
50 | Top=84
51 | Bottom=104
52 |
53 | [Field 5]
54 | Type=Label
55 | Text=DMD Installation folder
56 | Left=10
57 | Right=191
58 | Top=56
59 | Bottom=90
60 |
61 |
--------------------------------------------------------------------------------
/nsis/register.bat:
--------------------------------------------------------------------------------
1 | rundll32 %0\..\..\bin\debug\visuald.dll RunDLLRegister Software\Microsoft\VisualStudio\9.0D
2 |
--------------------------------------------------------------------------------
/nsis/unregister.bat:
--------------------------------------------------------------------------------
1 | rundll32 ..\bin\debug\visuald.dll RunDLLUnregister Software\Microsoft\VisualStudio\9.0D
2 |
--------------------------------------------------------------------------------
/sdk/Makefile:
--------------------------------------------------------------------------------
1 | # This file is part of Visual D
2 | #
3 | # Visual D integrates the D programming language into Visual Studio
4 | # Copyright (c) 2010 by Rainer Schuetze, All Rights Reserved
5 | #
6 | # Distributed under the Boost Software License, Version 1.0.
7 | # See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | DMD2 = c:\l\dmd-2.055\windows\bin\dmd.exe
10 | # DMD2 = m:\s\d\rainers\windows\bin\dmd.exe
11 | CV2PDB = ..\..\cv2pdb\trunk\bin\Debug\cv2pdb.exe
12 | IMPLIB = c:\l\dmc\bin\implib.exe
13 | COFFIMPLIB = c:\l\dmc\bin\coffimplib.exe
14 |
15 | include vsi_sources
16 | VSI_SRC = $(SRC) port/servprov.d port/stdole2.d port/msxml.d port/dte.d port/base.d \
17 | port\vsi.d port\propidl.d port\rpc.d port\string.d port\in6addr.d port\inaddr.d \
18 | port\ctype.d
19 |
20 | DBGDIR = ..\bin\Debug
21 | RELDIR = ..\bin\Release
22 |
23 | FMT = OMF
24 | !IF "$(FMT)" == "COFF"
25 | DFLAGS = -d -I.. -m32ms
26 | !ELSE
27 | DFLAGS = -d -L/DELEXECUTABLE -I..
28 | !ENDIF
29 |
30 | # -version=LOGSEMANTIC -L/IMPLIB -L/LINENUMBERS
31 |
32 | vsi: vsi_debug
33 |
34 | vsi_release: $(RELDIR)\vsi.lib
35 | vsi_debug: $(DBGDIR)\vsi.lib
36 |
37 | ######################
38 | $(DBGDIR)\vsi.lib : $(VSI_SRC) Makefile vsi_sources $(DMD2)
39 | $(DMD2) -of$@ -g -lib $(DFLAGS) @<<
40 | $(VSI_SRC)
41 | <cmdline
44 | $(RELDIR)\vsi.lib : $(VSI_SRC) Makefile vsi_sources $(DMD2)
45 | $(DMD2) -of$@ -lib -O -inline -release $(DFLAGS) @<<
46 | $(VSI_SRC)
47 | <sdk_libs
63 |
64 | libs: sdk_libs
65 |
66 | #kernel32.lib : kernel32.dll
67 | # echo $(IMPLIB) $@ $<
68 |
69 | # $(WIN_LIBS) : Makefile
70 |
--------------------------------------------------------------------------------
/sdk/port/activdbg.d:
--------------------------------------------------------------------------------
1 | module sdk.port.activdbg;
2 |
3 | struct IRemoteDebugApplication;
4 |
--------------------------------------------------------------------------------
/sdk/port/apiquery2.d:
--------------------------------------------------------------------------------
1 | module sdk.port.apiquery2;
2 |
--------------------------------------------------------------------------------
/sdk/port/apiset.d:
--------------------------------------------------------------------------------
1 | module sdk.port.apiset;
2 |
--------------------------------------------------------------------------------
/sdk/port/apisetcconv.d:
--------------------------------------------------------------------------------
1 | module sdk.port.apisetcconv;
2 |
--------------------------------------------------------------------------------
/sdk/port/cguid.d:
--------------------------------------------------------------------------------
1 | module sdk.port.cguid;
2 |
--------------------------------------------------------------------------------
/sdk/port/ctype.d:
--------------------------------------------------------------------------------
1 | module sdk.port.ctype;
2 |
3 | public import std.ascii;
4 |
--------------------------------------------------------------------------------
/sdk/port/dte.d:
--------------------------------------------------------------------------------
1 | module sdk.port.dte;
2 |
3 | public import sdk.vsi.dte80a;
4 |
--------------------------------------------------------------------------------
/sdk/port/excpt.d:
--------------------------------------------------------------------------------
1 | module sdk.port.excpt;
2 |
3 | public:
4 |
5 | enum EXCEPTION_DISPOSITION
6 | {
7 | ExceptionContinueExecution = 0,
8 | ExceptionContinueSearch = 1,
9 | ExceptionNestedException = 2,
10 | ExceptionCollidedUnwind = 3
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/sdk/port/guiddef.d:
--------------------------------------------------------------------------------
1 | module sdk.port.guiddef;
2 |
--------------------------------------------------------------------------------
/sdk/port/in6addr.d:
--------------------------------------------------------------------------------
1 | module sdk.port.in6addr;
2 |
3 | import sdk.port.base;
4 |
5 | //
6 | // IPv6 Internet address (RFC 2553)
7 | // This is an 'on-wire' format structure.
8 | //
9 | struct in6_addr
10 | {
11 | union _S6_union {
12 | UCHAR[16] Byte;
13 | USHORT[8] Word;
14 |
15 | alias Byte _S6_u8;
16 | };
17 | alias _S6_union u;
18 |
19 | //
20 | // Defines to match RFC 2553.
21 | //
22 | alias u _S6_un;
23 | alias u.Byte s6_addr;
24 |
25 | //
26 | // Defines for our implementation.
27 | //
28 | alias u.Byte s6_bytes;
29 | alias u.Word s6_words;
30 | }
31 |
32 | alias in6_addr IN6_ADDR;
33 | alias in6_addr* PIN6_ADDR;
34 | alias in6_addr* /*FAR*/ *LPIN6_ADDR;
35 |
36 | alias in6_addr in_addr6;
37 |
38 |
--------------------------------------------------------------------------------
/sdk/port/inaddr.d:
--------------------------------------------------------------------------------
1 | module sdk.port.inaddr;
2 |
3 | import sdk.port.base;
4 |
5 | //
6 | // IPv4 Internet address
7 | // This is an 'on-wire' format structure.
8 | //
9 | struct in_addr
10 | {
11 | union S_union
12 | {
13 | struct S_union_b { UCHAR s_b1,s_b2,s_b3,s_b4; } S_union_b S_un_b;
14 | struct S_union_w { USHORT s_w1,s_w2; } S_union_w S_un_w;
15 | ULONG S_addr;
16 | }
17 | S_union S_un;
18 |
19 | alias S_un.S_addr s_addr; /* can be used for most tcp & ip code */
20 | alias S_un.S_un_b.s_b2 s_host; // host on imp
21 | alias S_un.S_un_b.s_b1 s_net; // network
22 | alias S_un.S_un_w.s_w2 s_imp; // imp
23 | alias S_un.S_un_b.s_b4 s_impno; // imp #
24 | alias S_un.S_un_b.s_b3 s_lh; // logical host
25 | }
26 |
27 | alias in_addr IN_ADDR;
28 | alias in_addr* PIN_ADDR;
29 | alias in_addr /*FAR*/ *LPIN_ADDR;
30 |
31 |
--------------------------------------------------------------------------------
/sdk/port/kernelspecs.d:
--------------------------------------------------------------------------------
1 | module sdk.port.kernelspecs;
2 |
--------------------------------------------------------------------------------
/sdk/port/limits.d:
--------------------------------------------------------------------------------
1 | module sdk.port.limits;
2 |
--------------------------------------------------------------------------------
/sdk/port/microsoft/visualstudio/interop.d:
--------------------------------------------------------------------------------
1 | module microsoft.visualstudio.interop;
2 |
--------------------------------------------------------------------------------
/sdk/port/mprapi.d:
--------------------------------------------------------------------------------
1 | module sdk.port.mprapi;
2 |
--------------------------------------------------------------------------------
/sdk/port/msxml.d:
--------------------------------------------------------------------------------
1 | module sdk.port.msxml;
2 |
3 | public import sdk.win32.xmldom;
4 |
--------------------------------------------------------------------------------
/sdk/port/netioapi.d:
--------------------------------------------------------------------------------
1 | module sdk.port.netioapi;
2 |
3 | // hijacked to define sockaddr from ws2sock
4 | public alias void* sockaddr;
5 |
6 | public alias void* NET_ADDRESS_INFO_;
--------------------------------------------------------------------------------
/sdk/port/packoff.d:
--------------------------------------------------------------------------------
1 | module sdk.port.packoff;
2 |
--------------------------------------------------------------------------------
/sdk/port/packon.d:
--------------------------------------------------------------------------------
1 | module sdk.port.packon;
2 |
--------------------------------------------------------------------------------
/sdk/port/poppack.d:
--------------------------------------------------------------------------------
1 | module sdk.port.poppack;
2 |
--------------------------------------------------------------------------------
/sdk/port/pp.d:
--------------------------------------------------------------------------------
1 | module sdk.port.pp;
2 |
3 | bool pp_if(string cond)
4 | {
5 | return false;
6 | }
7 |
8 | bool pp_ifdef(string cond)
9 | {
10 | return false;
11 | }
12 |
13 | bool pp_ifndef(string cond)
14 | {
15 | return false;
16 | }
17 |
--------------------------------------------------------------------------------
/sdk/port/propidl.d:
--------------------------------------------------------------------------------
1 |
2 | module sdk.port.propidl;
3 |
4 | public import sdk.win32.unknwn;
5 |
6 | alias /+[unique]+/ IUnknown LPUNKNOWN;
7 |
--------------------------------------------------------------------------------
/sdk/port/pshpack1.d:
--------------------------------------------------------------------------------
1 | module sdk.port.pshpack1;
2 |
--------------------------------------------------------------------------------
/sdk/port/pshpack2.d:
--------------------------------------------------------------------------------
1 | module sdk.port.pshpack2;
2 |
--------------------------------------------------------------------------------
/sdk/port/pshpack4.d:
--------------------------------------------------------------------------------
1 | module sdk.port.pshpack4;
2 |
--------------------------------------------------------------------------------
/sdk/port/pshpack8.d:
--------------------------------------------------------------------------------
1 | module sdk.port.pshpack8;
2 |
--------------------------------------------------------------------------------
/sdk/port/registryroots.d:
--------------------------------------------------------------------------------
1 | module sdk.port.registryroots;
2 |
3 | // used by VSI-SDK 10.0 anyway
4 | const REGKEY_VISUALSTUDIOROOT_CURRENT = "Software\\Microsoft\\VisualStudio\\10.0";
5 | const LREGKEY_VISUALSTUDIOROOT_CURRENT = "Software\\Microsoft\\VisualStudio\\10.0"w.ptr;
6 |
7 | // added for VS2015
8 | const VISUALSTUDIO_PROGID_VERSION_CURRENT = "14.0"w.ptr;
9 | const VISUALSTUDIO_DDE_NAME_CURRENT = "VisualStudio.14.0"w.ptr;
10 |
11 | // added for VS2017
12 | const REGKEY_BLENDROOT_CURRENT = "Software\\Microsoft\\Blend\\15.0";
13 | const LREGKEY_BLENDROOT_CURRENT = "Software\\Microsoft\\Blend\\15.0"w.ptr;
14 |
--------------------------------------------------------------------------------
/sdk/port/rpc.d:
--------------------------------------------------------------------------------
1 | module sdk.port.rpc;
2 |
3 | public import sdk.win32.rpcdce;
4 |
--------------------------------------------------------------------------------
/sdk/port/rpcdcep.d:
--------------------------------------------------------------------------------
1 | module sdk.port.rpcdcep;
2 |
--------------------------------------------------------------------------------
/sdk/port/rpcndr.d:
--------------------------------------------------------------------------------
1 | module sdk.port.rpcndr;
2 |
--------------------------------------------------------------------------------
/sdk/port/servprov.d:
--------------------------------------------------------------------------------
1 | module sdk.port.servprov;
2 |
3 | import sdk.port.base;
4 | import sdk.win32.unknwn;
5 | //import std.c.windows.windows;
6 | //import std.c.windows.com;
7 |
8 | const GUID IID_IServiceProvider = IServiceProvider.iid;
9 |
10 | interface IServiceProvider : IUnknown
11 | {
12 | static const GUID iid = { 0x6d5140c1, 0x7436, 0x11ce, [ 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa ] };
13 | public:
14 | /* [local] */ HRESULT QueryService(
15 | /* [in] */ const GUID* guidService,
16 | /* [in] */ const IID* riid,
17 | /* [out] */ void **ppvObject);
18 | }
19 |
--------------------------------------------------------------------------------
/sdk/port/sharedvenusids.d:
--------------------------------------------------------------------------------
1 | // missing from VS12 SDK?
2 |
3 | module sdk.port.sharedvenusids;
4 |
--------------------------------------------------------------------------------
/sdk/port/specstrings.d:
--------------------------------------------------------------------------------
1 | module sdk.port.specstrings;
2 |
--------------------------------------------------------------------------------
/sdk/port/stdarg.d:
--------------------------------------------------------------------------------
1 | module sdk.port.stdarg;
2 |
3 | public import core.vararg;
4 |
--------------------------------------------------------------------------------
/sdk/port/stdlib.d:
--------------------------------------------------------------------------------
1 | module sdk.port.stdlib;
2 |
--------------------------------------------------------------------------------
/sdk/port/stdole2.d:
--------------------------------------------------------------------------------
1 | module sdk.port.stdole2;
2 |
3 | public import sdk.win32.wtypes;
4 | public import sdk.win32.oaidl;
5 | public import sdk.win32.ocidl;
6 | public import sdk.win32.oleidl;
7 |
--------------------------------------------------------------------------------
/sdk/port/stdole32.d:
--------------------------------------------------------------------------------
1 | module sdk.port.stdole32;
2 |
--------------------------------------------------------------------------------
/sdk/port/string.d:
--------------------------------------------------------------------------------
1 | module sdk.port.string;
2 |
3 | import std.string;
4 |
--------------------------------------------------------------------------------
/sdk/port/time.d:
--------------------------------------------------------------------------------
1 | module sdk.port.time;
2 |
3 | public import core.stdc.time;
4 |
--------------------------------------------------------------------------------
/sdk/port/tvout.d:
--------------------------------------------------------------------------------
1 | module sdk.port.tvout;
2 |
--------------------------------------------------------------------------------
/sdk/port/urlmon.d:
--------------------------------------------------------------------------------
1 | module sdk.port.urlmon;
2 |
3 | const URLZONE_USER_MIN = 1000;
4 |
5 | interface IBindStatusCallback {}
6 |
--------------------------------------------------------------------------------
/sdk/port/vapiempguids.d:
--------------------------------------------------------------------------------
1 | // missing from VS11 SDK
2 | module sdk.port.vapiempguids;
3 |
--------------------------------------------------------------------------------
/sdk/port/venuscmddef.d:
--------------------------------------------------------------------------------
1 | module sdk.port.venuscmddef;
2 |
--------------------------------------------------------------------------------
/sdk/port/vsi.d:
--------------------------------------------------------------------------------
1 | module sdk.port.vsi;
2 |
3 | public import sdk.port.base;
4 | public import sdk.win32.unknwn;
5 |
6 | // VSI specifics
7 | @property IUnknown DOCDATAEXISTING_UNKNOWN()
8 | {
9 | IUnknown unk;
10 | *cast(size_t*)&unk = -1;
11 | return unk;
12 | }
13 |
14 | //shared static this() { *cast(int*)&DOCDATAEXISTING_UNKNOWN = -1; }
15 |
16 | const GUID GUID_COMPlusNativeEng = { 0x92EF0900, 0x2251, 0x11D2, [ 0xB7, 0x2E, 0x00, 0x00, 0xF8, 0x75, 0x72, 0xEF ] };
17 | const GUID GUID_COMPlusOnlyEnd = uuid("{449EC4CC-30D2-4032-9256-EE18EB41B62B}");
18 | const GUID GUID_NativeOnlyEng = uuid("{3B476D35-A401-11D2-AAD4-00C04F990171}");
19 |
20 | interface IVsDebuggerDeployConnection : IUnknown
21 | {
22 | // only forward referenced in VS2015 SDK
23 | };
24 |
--------------------------------------------------------------------------------
/sdk/port/vsversion_generated.d:
--------------------------------------------------------------------------------
1 | // needed by VS11/2012 SDK
2 | module sdk.port.vsversion_generated;
3 |
4 | enum VSVersionNumberMajor = 11;
5 | enum VSVersionNumberMinor = 0;
6 | enum BuildNumberMajor = 33333;
7 | enum BuildNumberMinor = 1;
8 |
9 | // needed by VS2015 SDK
10 | enum NDPFileVersionMinor = 14;
11 | enum NDPFileVersionBuild = 12345;
12 | enum NDPFileVersionRevision = 1;
13 |
--------------------------------------------------------------------------------
/sdk/port/winapifamily.d:
--------------------------------------------------------------------------------
1 | module sdk.port.winapifamily;
2 |
--------------------------------------------------------------------------------
/sdk/sources:
--------------------------------------------------------------------------------
1 | SRC = \
2 | win32\windef.d \
3 | win32\sdkddkver.d \
4 | win32\basetsd.d \
5 | win32\ntstatus.d \
6 | win32\winnt.d \
7 | win32\winbase.d \
8 | win32\winuser.d \
9 | win32\ktmtypes.d \
10 | win32\winerror.d \
11 | win32\unknwn.d \
12 | win32\oaidl.d \
13 | win32\objidl.d \
14 | win32\wtypes.d \
15 | win32\oleidl.d \
16 | win32\ocidl.d \
17 | win32\docobj.d \
18 | win32\mshtmcid.d \
19 | win32\xmldom.d \
20 | win32\xmldso.d \
21 | win32\xmldomdid.d \
22 | win32\xmldsodid.d \
23 | win32\idispids.d \
24 |
25 |
--------------------------------------------------------------------------------
/sdk/test.d:
--------------------------------------------------------------------------------
1 | module test;
2 |
3 | import sdk.win32.winbase;
4 | import sdk.win32.winuser;
5 |
6 | void main()
7 | {
8 | }
9 |
--------------------------------------------------------------------------------
/stdext/container.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010-2011 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | module stdext.container;
10 |
11 | ///////////////////////////////////////////////////////////////////////
12 | struct Queue(T)
13 | {
14 | T[] data;
15 | size_t used;
16 |
17 | void append(ref T t)
18 | {
19 | if(used >= data.length)
20 | data.length = data.length * 2 + 1;
21 | data[used++] = t;
22 | }
23 | void remove(size_t idx)
24 | {
25 | assert(idx < used);
26 | for(size_t i = idx + 1; i < used; i++)
27 | data[i - 1] = data[i];
28 | data[--used] = T.init;
29 | }
30 |
31 | @property size_t length()
32 | {
33 | return used;
34 | }
35 |
36 | ref T opIndex(size_t idx)
37 | {
38 | assert(idx < used);
39 | return data[idx];
40 | }
41 |
42 | ref Queue!T opOpAssign(string op)(ref T t) if (op == "~")
43 | {
44 | append(t);
45 | return this;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/stdext/denseset.d:
--------------------------------------------------------------------------------
1 | module stdext.denseset;
2 | import core.memory;
3 |
4 | struct DenseSet(T, ALLOC = GC)
5 | {
6 | static assert(is(T == class)); // only reference objects
7 |
8 | ~this()
9 | {
10 | if (entries)
11 | ALLOC.free(entries);
12 | }
13 |
14 | bool contains(T p)
15 | {
16 | return findSlot(cast(S)cast(void*)p) !is null;
17 | }
18 |
19 | bool insert(T p)
20 | {
21 | if (dim == 0)
22 | rehash(16);
23 | return findSlotInsert(cast(S)cast(void*)p) !is null;
24 | }
25 |
26 | bool remove(T p)
27 | {
28 | auto pp = findSlot(cast(S)cast(void*)p);
29 | if (!pp)
30 | return false;
31 | *pp = entryDeleted;
32 | deleted++;
33 | return true;
34 | }
35 |
36 | private:
37 | S* findSlot(S p)
38 | {
39 | if (dim == 0)
40 | return null;
41 | else if (used >= dim / 2)
42 | rehash(dim * 2);
43 |
44 | size_t off = calcHash(p) & (dim - 1);
45 | for (int j = 1;; ++j)
46 | {
47 | if (entries[off] == p)
48 | return entries + off;
49 | if (!entries[off])
50 | return null;
51 | off = (off + j) & (dim - 1);
52 | }
53 | }
54 |
55 | S* findSlotInsert(S p)
56 | {
57 | S* del = null;
58 | size_t off = calcHash(p) & (dim - 1);
59 | for (int j = 1;; ++j)
60 | {
61 | if (entries[off] == p)
62 | return entries + off;
63 |
64 | if (!del && entries[off] == entryDeleted)
65 | // remember the first deleted entry
66 | del = entries + off;
67 |
68 | if (!entries[off])
69 | {
70 | if (del)
71 | {
72 | *del = p;
73 | deleted--;
74 | return del;
75 | }
76 | entries[off] = p;
77 | used++;
78 | return entries + off;
79 | }
80 | off = (off + j) & (dim - 1);
81 | }
82 | }
83 |
84 | size_t calcHash(S p)
85 | {
86 | size_t addr = p; //cast(size_t) cast(void*) p;
87 | return addr ^ (addr >>> 4);
88 | }
89 |
90 | void rehash(size_t sz)
91 | {
92 | assert((sz & (sz - 1)) == 0);
93 | assert(sz > used - deleted);
94 | S* oentries = entries;
95 | entries = cast(S*) ALLOC.calloc(sz * S.sizeof);
96 | size_t odim = dim;
97 |
98 | dim = sz;
99 | used = 0;
100 | deleted = 0;
101 | for (int i = 0; i < odim; i++)
102 | {
103 | if (oentries[i] && oentries[i] != entryDeleted)
104 | findSlotInsert(oentries[i]);
105 | }
106 | ALLOC.free(oentries);
107 | }
108 |
109 | alias S = size_t;
110 | enum entryDeleted = cast(S) ~0;
111 |
112 | size_t dim;
113 | size_t used;
114 | size_t deleted;
115 |
116 | S* entries;
117 | }
118 |
--------------------------------------------------------------------------------
/stdext/util.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010-2011 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | module stdext.util;
10 |
11 | ////////////////////////////////////////////////////////////////
12 | inout(T) static_cast(T, S = Object)(inout(S) p)
13 | {
14 | if(!p)
15 | return null;
16 | if(__ctfe)
17 | return cast(inout(T)) p;
18 | assert(cast(inout(T)) p);
19 | void* vp = cast(void*)p;
20 | return cast(inout(T)) vp;
21 | }
22 |
23 | ////////////////////////////////////////////////////////////////
24 | bool isIn(T...)(T values)
25 | {
26 | T[0] needle = values[0];
27 | foreach(v; values[1..$])
28 | if(v == needle)
29 | return true;
30 | return false;
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/tools/7z/7za.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/tools/7z/7za.exe
--------------------------------------------------------------------------------
/tools/7z/License.txt:
--------------------------------------------------------------------------------
1 | 7-Zip Extra
2 | ~~~~~~~~~~~
3 | License for use and distribution
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 |
6 | Copyright (C) 1999-2019 Igor Pavlov.
7 |
8 | 7-Zip Extra files are under the GNU LGPL license.
9 |
10 |
11 | Notes:
12 | You can use 7-Zip Extra on any computer, including a computer in a commercial
13 | organization. You don't need to register or pay for 7-Zip.
14 |
15 |
16 | GNU LGPL information
17 | --------------------
18 |
19 | This library is free software; you can redistribute it and/or
20 | modify it under the terms of the GNU Lesser General Public
21 | License as published by the Free Software Foundation; either
22 | version 2.1 of the License, or (at your option) any later version.
23 |
24 | This library is distributed in the hope that it will be useful,
25 | but WITHOUT ANY WARRANTY; without even the implied warranty of
26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27 | Lesser General Public License for more details.
28 |
29 | You can receive a copy of the GNU Lesser General Public License from
30 | http://www.gnu.org/
31 |
32 |
--------------------------------------------------------------------------------
/tools/build_dcxxfilt.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem unpack and configure binutils 2.25+
3 | rem don't use spaces in path names!
4 |
5 | setlocal
6 | call "%VCINSTALLDIR%\Auxiliary\Build\vcvars32.bat"
7 |
8 | if "%DMDINSTALLDIR%" == "" set DMDINSTALLDIR=c:\d\dmd-2.109.1
9 | set DMD=%DMDINSTALLDIR%\windows\bin\dmd
10 | if "%BINUTILS%" == "" set BINUTILS=c:\s\d\visuald\cxxfilt
11 |
12 | if "%CONFIG%" == "" set CONFIG=Debug
13 |
14 | set OUTDIR=..\bin\%CONFIG%
15 | set LIBIBERTY=%BINUTILS%\libiberty
16 |
17 | %DMD% -c -m32mscoff -of%OUTDIR%\dcxxfilt.obj dcxxfilt.d || exit /B 1
18 |
19 | set SRC=
20 | set SRC=%SRC% %LIBIBERTY%\d-demangle.c
21 | set SRC=%SRC% %LIBIBERTY%\cp-demangle.c %LIBIBERTY%\cplus-dem.c
22 | set SRC=%SRC% %LIBIBERTY%\xmalloc.c %LIBIBERTY%\xstrdup.c %LIBIBERTY%\xexit.c
23 | set SRC=%SRC% %LIBIBERTY%\safe-ctype.c
24 | set SRC=%SRC% %LIBIBERTY%\alloca.c
25 |
26 | set COPT=-I %BINUTILS% -I %BINUTILS%\include -I %BINUTILS%\binutils -DHAVE_CONFIG_H
27 | set LIB=%LIB%;%DMDINSTALLDIR%\windows\lib32mscoff
28 | if exist "%VCINSTALLDIR%\lib\legacy_stdio_definitions.lib" set SRC=%SRC% legacy_stdio_definitions.lib
29 | if exist "%VCTOOLSINSTALLDIR%\lib\x86\legacy_stdio_definitions.lib" set SRC=%SRC% legacy_stdio_definitions.lib
30 | cl /Ox /Fe%OUTDIR%\dcxxfilt.exe /Fo%OUTDIR%\ %COPT% %SRC% %OUTDIR%\dcxxfilt.obj dbghelp.lib -link /SUBSYSTEM:CONSOLE,5.01
31 |
--------------------------------------------------------------------------------
/tools/largeadr.d:
--------------------------------------------------------------------------------
1 | module largeadr;
2 |
3 | import std.file;
4 |
5 | void main(string[] argv)
6 | {
7 | foreach(f; argv[1 .. $])
8 | {
9 | ubyte[] image = cast(ubyte[]) std.file.read(f);
10 | if(image[0x76] == 0xAE)
11 | throw new Exception("File " ~ f ~ " already large address aware");
12 | if(image[0x76] != 0x8E)
13 | throw new Exception("File " ~ f ~ " not a dmd generated executable");
14 | image[0x76] = 0xAE;
15 | std.file.write(f, image);
16 | }
17 | }
--------------------------------------------------------------------------------
/tools/mb2utf16.d:
--------------------------------------------------------------------------------
1 | import std.file;
2 | import std.utf;
3 | import std.windows.charset;
4 | import core.sys.windows.winuser;
5 |
6 | pragma(lib, "user32");
7 |
8 | void main(string[] argv)
9 | {
10 | int cp = GetKBCodePage();
11 | string input = argv[1];
12 | string output = (argv.length > 2 ? argv[2] : input);
13 |
14 | void[] content = std.file.read(input);
15 | string str8 = fromMBSz((cast(string)content ~ '\0').ptr, cp);
16 | wstring str16 = toUTF16(str8);
17 | ubyte[2] bom = [ 0xff, 0xfe ];
18 | std.file.write(output, bom ~ cast(ubyte[])str16);
19 | }
20 |
--------------------------------------------------------------------------------
/tools/nostacktrace.d:
--------------------------------------------------------------------------------
1 | // replacement module to disable stack traces and avoid the default stacktrace code
2 | // to be linked in
3 |
4 | module core.sys.windows.stacktrace;
5 |
6 | import core.sys.windows.windows;
7 |
8 | class StackTrace : Throwable.TraceInfo
9 | {
10 | public:
11 | static if (__VERSION__ < 2102)
12 | this(size_t skip, CONTEXT* context)
13 | {
14 | }
15 | else
16 | this(size_t skip, CONTEXT* context) @nogc
17 | {
18 | }
19 |
20 | int opApply(scope int delegate(ref const(char[])) dg) const
21 | {
22 | return 0;
23 | }
24 | int opApply(scope int delegate(ref size_t, ref const(char[])) dg) const
25 | {
26 | return 0;
27 | }
28 | override string toString() const @trusted
29 | {
30 | return null;
31 | }
32 | static ulong[] trace(size_t skip = 0, CONTEXT* context = null)
33 | {
34 | return null;
35 | }
36 | static ulong[] trace(ulong[] buffer, size_t skip = 0, CONTEXT* context = null) @nogc
37 | {
38 | return null;
39 | }
40 | static char[][] resolve(const(ulong)[] addresses)
41 | {
42 | return [];
43 | }
44 | private:
45 | ulong[] m_trace;
46 | }
47 |
--------------------------------------------------------------------------------
/tools/tlb2idl.vcproj:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
25 |
38 |
39 |
45 |
58 |
59 |
60 |
61 |
62 |
63 |
66 |
67 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/vdc/abothe/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .vs
3 | *.user
4 | packages
5 | comserver/obj
6 | DParserCOMServer.Tests/obj
7 | DParserCOMServer.Tests/bin
--------------------------------------------------------------------------------
/vdc/abothe/DParserCOMServer.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/COM/Program.cs:
--------------------------------------------------------------------------------
1 | namespace DParserCOMServer.COM
2 | {
3 | static class Program
4 | {
5 | ///
6 | /// The main entry point for the application.
7 | ///
8 | static void Main(string[] args)
9 | {
10 | SetErrorMode(3); //don't show JitDebugger on crash
11 |
12 | // Run the out-of-process COM server
13 | ExeCOMServer.Instance.Run();
14 | }
15 |
16 | [DllImport("Kernel32.dll")]
17 | public static extern uint SetErrorMode(uint mode);
18 | }
19 | }
--------------------------------------------------------------------------------
/vdc/abothe/comserver/COM/VDServerClassFactory.cs:
--------------------------------------------------------------------------------
1 | /****************************** Module Header ******************************\
2 | Module Name: ExeCOMServer.cs
3 | Project: CSExeCOMServer
4 | Copyright (c) Microsoft Corporation.
5 |
6 | ExeCOMServer encapsulates the skeleton of an out-of-process COM server in
7 | C#. The class implements the singleton design pattern and it's thread-safe.
8 | To start the server, call CSExeCOMServer.Instance.Run(). If the server is
9 | running, the function returns directly. Inside the Run method, it registers
10 | the class factories for the COM classes to be exposed from the COM server,
11 | and starts the message loop to wait for the drop of lock count to zero.
12 | When lock count equals zero, it revokes the registrations and quits the
13 | server.
14 |
15 | The lock count of the server is incremented when a COM object is created,
16 | and it's decremented when the object is released (GC-ed). In order that the
17 | COM objects can be GC-ed in time, ExeCOMServer triggers GC every 5 seconds
18 | by running a Timer after the server is started.
19 |
20 | This source is subject to the Microsoft Public License.
21 | See http://www.microsoft.com/en-us/openness/licenses.aspx#MPL.
22 | All other rights reserved.
23 |
24 | THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
25 | EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
26 | WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
27 | \***************************************************************************/
28 |
29 | #region Using directives
30 |
31 | using System;
32 | using System.Runtime.InteropServices;
33 |
34 | #endregion
35 |
36 |
37 | namespace DParserCOMServer.COM
38 | {
39 | [Guid("002a2de9-8bb6-484d-aa02-7e4ad4084715"), ComVisible(true)]
40 | public class VDServerClassFactory : IClassFactory
41 | {
42 | public int CreateInstance(IntPtr pUnkOuter, ref Guid riid, out IntPtr ppvObject)
43 | {
44 | ppvObject = IntPtr.Zero;
45 |
46 | if (pUnkOuter != IntPtr.Zero)
47 | {
48 | // The pUnkOuter parameter was non-NULL and the object does
49 | // not support aggregation.
50 | Marshal.ThrowExceptionForHR(COMNative.CLASS_E_NOAGGREGATION);
51 | }
52 |
53 | if (riid == new Guid(IID.IVDServer) ||
54 | riid == new Guid(COMNative.IID_IDispatch) ||
55 | riid == new Guid(COMNative.IID_IUnknown))
56 | {
57 | // Create the instance of the .NET object
58 | ppvObject = Marshal.GetComInterfaceForObject(new VDServer(), typeof(IVDServer));
59 | }
60 | else
61 | {
62 | // The object that ppvObject points to does not support the
63 | // interface identified by riid.
64 | Marshal.ThrowExceptionForHR(COMNative.E_NOINTERFACE);
65 | }
66 | return 0; // S_OK
67 | }
68 |
69 | public int LockServer(bool fLock)
70 | {
71 | if(fLock)
72 | ExeCOMServer.Instance.Lock();
73 | else
74 | ExeCOMServer.Instance.Unlock();
75 | return 0; // S_OK
76 | }
77 | }
78 | }
--------------------------------------------------------------------------------
/vdc/abothe/comserver/CodeSemantics/ReferencesListGenerator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using D_Parser.Completion;
4 | using D_Parser.Dom;
5 | using D_Parser.Parser;
6 | using D_Parser.Refactoring;
7 | using D_Parser.Resolver;
8 | using D_Parser.Resolver.ExpressionSemantics;
9 | using D_Parser.Resolver.TypeResolution;
10 | using System.IO;
11 |
12 | namespace DParserCOMServer.CodeSemantics
13 | {
14 | public class ReferencesListGenerator : AbstractVDServerTask
15 | {
16 | private readonly VDServer _vdServer;
17 | public ReferencesListGenerator(VDServer vdServer, EditorDataProvider editorDataProvider)
18 | : base(vdServer, editorDataProvider)
19 | {
20 | _vdServer = vdServer;
21 | }
22 |
23 | protected override string Process(EditorData editorData, bool moduleOnly)
24 | {
25 | var sr = DResolver.GetScopedCodeObject(editorData);
26 | var rr = sr != null ? LooseResolution.ResolveTypeLoosely(editorData, sr, out _, true) : null;
27 |
28 | var refs = new StringBuilder();
29 | if (rr != null)
30 | {
31 | var n = ExpressionTypeEvaluation.GetResultMember(rr);
32 |
33 | if (n != null)
34 | {
35 | var ctxt = ResolutionContext.Create(editorData, true);
36 | if (moduleOnly || n.ContainsAnyAttribute(DTokens.Private) || (n is DVariable variable && variable.IsLocal))
37 | {
38 | GetReferencesInModule(editorData.SyntaxTree, refs, n, ctxt);
39 | }
40 | else
41 | {
42 | foreach (var rootPackage in editorData.ParseCache.EnumRootPackagesSurroundingModule(editorData.SyntaxTree))
43 | foreach (var module in rootPackage)
44 | GetReferencesInModule(module, refs, n, ctxt);
45 | }
46 | }
47 |
48 | //var res = TypeReferenceFinder.Scan(_editorData, System.Threading.CancellationToken.None, null);
49 | }
50 |
51 | return refs.ToString();
52 | }
53 |
54 | private void GetReferencesInModule(DModule ast, StringBuilder refs, DNode n, ResolutionContext ctxt)
55 | {
56 | var res = ReferencesFinder.SearchModuleForASTNodeReferences(ast, n, ctxt);
57 |
58 | foreach (var r in res)
59 | {
60 | var rfilename = ast.FileName;
61 | var rloc = r.Location;
62 | var len = r.ToString().Length;
63 | var src = GetSource(rfilename);
64 | var linetxt = GetSourceLine(src, rloc.Line);
65 | var ln = $"{rloc.Line},{rloc.Column - 1},{rloc.Line},{rloc.Column + len - 1}:{rfilename}|{linetxt}\n";
66 |
67 | refs.Append(ln);
68 | }
69 | }
70 |
71 | private string GetSource(string fileName)
72 | {
73 | var sources = _vdServer._sources;
74 | if (!sources.ContainsKey(fileName))
75 | {
76 | try
77 | {
78 | sources[fileName] = File.ReadAllText(fileName);
79 | }
80 | catch (Exception)
81 | {
82 | return "";
83 | }
84 | }
85 | return sources[fileName];
86 | }
87 |
88 | private static string GetSourceLine(string s, int line)
89 | {
90 | int off = 0;
91 | for (int ln = 1; ln < line; ln++)
92 | off = s.IndexOf('\n', off) + 1;
93 | int end = s.IndexOf('\n', off);
94 | return s.Substring(off, end - off);
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/CodeSemantics/SemanticExpansionsGenerator.cs:
--------------------------------------------------------------------------------
1 | using D_Parser.Completion;
2 | using D_Parser.Dom;
3 | using D_Parser.Parser;
4 |
5 | namespace DParserCOMServer.CodeSemantics
6 | {
7 | public class SemanticExpansionsGenerator : AbstractVDServerTask
8 | {
9 | public SemanticExpansionsGenerator(VDServer vdServer, EditorDataProvider editorDataProvider)
10 | : base(vdServer, editorDataProvider) { }
11 |
12 | protected override string Process(EditorData editorData, string tok)
13 | {
14 | var originalCaretLocation = editorData.CaretLocation;
15 | var idx = originalCaretLocation.Column - 1;
16 | // step back to beginning of identifier
17 | while (editorData.CaretOffset > 0 && Lexer.IsIdentifierPart(editorData.ModuleCode[editorData.CaretOffset - 1]))
18 | {
19 | editorData.CaretOffset--;
20 | if (idx > 0) idx--;
21 | }
22 | editorData.CaretLocation = new CodeLocation(idx + 1, originalCaretLocation.Line);
23 |
24 | char triggerChar = string.IsNullOrEmpty(tok) ? '\0' : tok[0];
25 |
26 | var cdgen = new VDServerCompletionDataGenerator(tok);
27 | CodeCompletion.GenerateCompletionData(editorData, cdgen, triggerChar);
28 | return cdgen.expansions.ToString();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/CodeSemantics/SymbolDefinitionGenerator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using D_Parser.Completion;
4 | using D_Parser.Dom;
5 | using D_Parser.Parser;
6 | using D_Parser.Resolver;
7 | using D_Parser.Resolver.ExpressionSemantics;
8 | using D_Parser.Resolver.TypeResolution;
9 |
10 | namespace DParserCOMServer.CodeSemantics
11 | {
12 | public class SymbolDefinitionGenerator
13 | : AbstractVDServerTask, CodeLocation>
14 | {
15 | public SymbolDefinitionGenerator(VDServer vdServer, EditorDataProvider editorDataProvider)
16 | : base(vdServer, editorDataProvider) { }
17 |
18 | protected override Tuple Process(EditorData editorData, CodeLocation tipEnd)
19 | {
20 | var tipStart = editorData.CaretLocation;
21 | editorData.CaretOffset += 2;
22 | editorData.CaretLocation = tipEnd;
23 |
24 | var sr = DResolver.GetScopedCodeObject(editorData);
25 | var rr = sr != null ? LooseResolution.ResolveTypeLoosely(editorData, sr, out _, true) : null;
26 |
27 | var definitionSourceFilename = new StringBuilder();
28 | if (rr != null)
29 | {
30 | if (rr is AliasedType at)
31 | {
32 | // jump to original definition if it is not renamed or the caret is on the import
33 | var isRenamed = (at.Definition as ImportSymbolAlias)?.ImportBinding?.Alias != null;
34 | if (!isRenamed || at.Definition.Location == sr.Location)
35 | rr = at.Base;
36 | }
37 | DNode n = null;
38 | foreach (var t in AmbiguousType.TryDissolve(rr))
39 | {
40 | n = ExpressionTypeEvaluation.GetResultMember(t);
41 | if (n != null)
42 | break;
43 | }
44 |
45 | if (n != null)
46 | {
47 | if (definitionSourceFilename.Length > 0)
48 | definitionSourceFilename.Append("\n");
49 | bool decl = false;
50 | if (n is DMethod method)
51 | decl = method.Body == null;
52 | else if (n.ContainsAnyAttribute(DTokens.Extern))
53 | decl = true;
54 | if (decl)
55 | definitionSourceFilename.Append("EXTERN:");
56 |
57 | tipStart = n.Location;
58 | tipEnd = n.EndLocation;
59 | if (n.NodeRoot is DModule module)
60 | definitionSourceFilename.Append(module.FileName);
61 | }
62 | }
63 |
64 | return Tuple.Create(tipStart, tipEnd, definitionSourceFilename.ToString());
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/IVDServer.cs:
--------------------------------------------------------------------------------
1 | //
2 | // To be used by Visual D, set registry entry
3 | // HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0D\ToolsOptionsPages\Projects\Visual D Settings\VDServerIID
4 | // to "{002a2de9-8bb6-484d-AA05-7e4ad4084715}"
5 |
6 | using System.Runtime.InteropServices;
7 |
8 | namespace DParserCOMServer
9 | {
10 | public static class IID
11 | {
12 | public const string IVDServer = "002a2de9-8bb6-484d-9901-7e4ad4084715";
13 | public const string VDServer = "002a2de9-8bb6-484d-AA05-7e4ad4084715";
14 | //public const string VDServer = "002a2de9-8bb6-484d-AB05-7e4ad4084715"; // debug
15 | }
16 |
17 | [ComVisible (true), Guid (IID.IVDServer)]
18 | [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
19 | public interface IVDServer
20 | {
21 | void ConfigureSemanticProject (string filename, string imp, string stringImp, string versionids, string debugids, string cmdline, uint flags);
22 | void ClearSemanticProject ();
23 | void UpdateModule (string filename, string srcText, int flags);
24 | void GetTip (string filename, int startLine, int startIndex, int endLine, int endIndex, int flags);
25 | void GetTipResult (out int startLine, out int startIndex, out int endLine, out int endIndex, out string answer);
26 | void GetSemanticExpansions (string filename, string tok, uint line, uint idx, string expr);
27 | void GetSemanticExpansionsResult (out string stringList);
28 | void IsBinaryOperator (string filename, uint startLine, uint startIndex, uint endLine, uint endIndex, out bool pIsOp);
29 | void GetParseErrors (string filename, out string errors);
30 | void GetBinaryIsInLocations (string filename, out object locs); // array of pairs of DWORD
31 | void GetDocumentOutline(string filename, out string outline);
32 | void GetLastMessage (out string message);
33 | void GetIdentifierTypes(string filename, int startLine, int endLine, int flags);
34 | void GetIdentifierTypesResult(out string types);
35 | void GetDefinition (string filename, int startLine, int startIndex, int endLine, int endIndex);
36 | void GetDefinitionResult (out int startLine, out int startIndex, out int endLine, out int endIndex, out string filename);
37 | void GetReferences (string filename, string tok, uint line, uint idx, string expr, bool moduleOnly);
38 | void GetReferencesResult (out string stringList);
39 | void ConfigureCommentTasks (string tasks);
40 | void GetCommentTasks (string filename, out string tasks);
41 | void GetParameterStorageLocs(string filename, out object locs); // array of triplets of DWORD
42 | }
43 | }
44 |
45 |
46 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/NodeToolTipContentGen.cs:
--------------------------------------------------------------------------------
1 | using System.Text;
2 | using D_Parser.Completion.ToolTips;
3 |
4 | namespace DParserCOMServer
5 | {
6 | class NodeToolTipContentGen : NodeTooltipRepresentationGen
7 | {
8 | public static readonly NodeToolTipContentGen Instance = new NodeToolTipContentGen();
9 |
10 | private NodeToolTipContentGen() {
11 | SignatureFlags = TooltipSignatureFlags.NoEnsquaredDefaultParams | TooltipSignatureFlags.NoLineBreakedMethodParameters;
12 | }
13 |
14 | protected override void AppendFormat (string content, StringBuilder sb, FormatFlags flags, double r = 0, double g = 0, double b = 0)
15 | {
16 | sb.Append (content);
17 | //base.AppendFormat (content, sb, flags, r, g, b);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/vdc/abothe/comserver/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("COM Server for DParser")]
9 | [assembly: AssemblyDescription("COM Server for DParser")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Rainer Schuetze")]
12 | [assembly: AssemblyProduct("DParserCOMServer")]
13 | [assembly: AssemblyCopyright("Copyright © R.Schuetze 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("002a2de9-8bb6-484d-AA03-7e4ad4084715")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.*")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/vdc/abothe/comserver/VDServerEditorFlags.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace DParserCOMServer
4 | {
5 | [Flags]
6 | public enum VDServerEditorFlags:uint
7 | {
8 | [Obsolete]
9 | Unittest = 1,
10 | [Obsolete]
11 | DebugAssert = 2,
12 | [Obsolete]
13 | x64 = 4,
14 | [Obsolete]
15 | Coverage = 8,
16 | [Obsolete]
17 | DDoc = 16,
18 | [Obsolete]
19 | NoBoundsCheck = 32,
20 | [Obsolete]
21 | GNU = 64,
22 | [Obsolete]
23 | LDC = 0x4000000,
24 | [Obsolete]
25 | CRuntime_Microsoft = 0x8000000,
26 | ///
27 | /// GNU or LDC
28 | ///
29 | [Obsolete]
30 | CRuntime_MinGW = 0x4000040,
31 | ShowUFCSItems = 0x2000000,
32 | EnableMixinAnalysis = 0x1000000,
33 | HideDeprecatedNodes = 128
34 | }
35 | }
--------------------------------------------------------------------------------
/vdc/abothe/comserver/VDserverParseCacheView.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using D_Parser.Dom;
4 | using D_Parser.Misc;
5 |
6 | namespace DParserCOMServer
7 | {
8 | class VDserverParseCacheView : ParseCacheView
9 | {
10 | #region Properties
11 | readonly List packs;
12 | #endregion
13 | public string[] PackageRootDirs { get; private set; }
14 |
15 | #region Constructors
16 | public VDserverParseCacheView(string[] packageRoots)
17 | {
18 | this.PackageRootDirs = packageRoots;
19 | this.packs = new List();
20 | Add(packageRoots);
21 | }
22 |
23 | public VDserverParseCacheView(IEnumerable packages)
24 | {
25 | this.packs = new List(packages);
26 | }
27 | #endregion
28 |
29 | public override IEnumerable EnumRootPackagesSurroundingModule(DModule module)
30 | {
31 | // if packs not added during construction because not yet parsed by GlobalParseCache, try adding now
32 | if (packs.Count() != PackageRootDirs.Count())
33 | Add(PackageRootDirs);
34 | return packs;
35 | }
36 |
37 | public void Add(RootPackage pack)
38 | {
39 | if (pack != null && !packs.Contains(pack))
40 | packs.Add(pack);
41 | }
42 |
43 | public void Add(IEnumerable roots)
44 | {
45 | RootPackage rp;
46 | foreach (var r in roots)
47 | if ((rp = GlobalParseCache.GetRootPackage(r)) != null && !packs.Contains(rp))
48 | packs.Add(rp);
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/vdc/abothe/register.bat:
--------------------------------------------------------------------------------
1 | rem run this batch once after compilation to register the debug version
2 | rem regasm must be in the PATH, so you could just use the VS2010 command line
3 |
4 | rem Framework 4+ needed
5 | set regasm=c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe
6 |
7 | %regasm% ..\..\bin\Debug\abothe.VDServer.dll /codebase /regfile:%cd%\abothe.vdserver.reg
8 | if errorlevel 1 goto xit
9 |
10 | rem for 64-bit OS, we must add these entries into the Wow6432Node hive of the registry
11 | if not exist c:\windows\syswow64\regedit.exe goto win32
12 |
13 | c:\windows\syswow64\regedit -m %cd%\abothe.vdserver.reg
14 | goto xit
15 |
16 | :win32
17 | regedit -m %cd%\abothe.vdserver.reg
18 |
19 | :xit
--------------------------------------------------------------------------------
/vdc/abothe/testvd.d:
--------------------------------------------------------------------------------
1 | // compile with
2 | // m:\s\d\rainers\windows\bin\dmd.exe -g testvd.d -I..\.. oleaut32.lib ole32.lib
3 |
4 | module testvd;
5 |
6 | import std.stdio;
7 | import std.conv;
8 |
9 | import sdk.win32.oaidl;
10 | import sdk.win32.objbase;
11 | import sdk.win32.oleauto;
12 | import sdk.port.base;
13 |
14 | import vdc.ivdserver;
15 |
16 | static GUID IVDServer_iid = uuid("002a2de9-8bb6-484d-9901-7e4ad4084715");
17 | static GUID VDServer_iid = uuid("002a2de9-8bb6-484d-AA05-7e4ad4084715");
18 | static GUID IID_IUnknown = uuid("00000000-0000-0000-C000-000000000046");
19 | static GUID IID_IClassFactory = { 0x00000001,0x0000,0x0000,[ 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46 ] };
20 |
21 | // issues:
22 | // C# registration with REGASM only adds the class to the 64-bit registry, not wow6432node
23 | int main()
24 | {
25 | CoInitialize(null);
26 |
27 | IVDServer gVDServer;
28 |
29 | IUnknown pUnknown;
30 | HRESULT hr = CoGetClassObject(VDServer_iid, CLSCTX_INPROC_SERVER, null, IID_IUnknown, cast(void**)&pUnknown);
31 | if(FAILED(hr))
32 | return -1;
33 | // hr = OleRun(pUnknown);
34 | // if(FAILED(hr))
35 | // return -3;
36 | IClassFactory factory;
37 | hr = pUnknown.QueryInterface(&IID_IClassFactory, cast(void**)&factory);
38 | pUnknown.Release();
39 | if(FAILED(hr))
40 | return -5;
41 |
42 | hr = factory.CreateInstance(null, &IVDServer_iid, cast(void**)&gVDServer);
43 | if(FAILED(hr))
44 | return -5;
45 |
46 | BSTR fname = SysAllocString("filename");
47 | BSTR source = SysAllocString("void main() { int abc; }");
48 | hr = gVDServer.UpdateModule(fname, source, false);
49 |
50 | version(all)
51 | {{
52 | int iStartLine = 1;
53 | int iStartIndex = 6;
54 | int iEndLine = 1;
55 | int iEndIndex = 6;
56 | hr = gVDServer.GetTip(fname, iStartLine, iStartIndex, iEndLine, iEndIndex);
57 |
58 | BSTR btype;
59 | hr = gVDServer.GetTipResult(iStartLine, iStartIndex, iEndLine, iEndIndex, &btype);
60 | writeln("Tip: ", to!wstring(btype));
61 | }}
62 |
63 | version(all)
64 | {{
65 | int iStartLine = 1;
66 | int iStartIndex = 6;
67 | BSTR tok = SysAllocString("m");
68 | BSTR expr = SysAllocString("");
69 | hr = gVDServer.GetSemanticExpansions(fname, tok, iStartLine, iStartIndex, expr);
70 |
71 | BSTR expansions;
72 | hr = gVDServer.GetSemanticExpansionsResult(&expansions);
73 | writeln("Expansion: ", to!wstring(expansions));
74 | }}
75 |
76 | BSTR msg;
77 | hr = gVDServer.GetLastMessage(&msg);
78 | if(FAILED(hr))
79 | return -6;
80 | factory.Release();
81 | gVDServer.Release();
82 | return 0;
83 | }
84 |
--------------------------------------------------------------------------------
/vdc/ast/all.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010-2011 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | module vdc.ast.all;
10 |
11 | public import vdc.ast.aggr;
12 | public import vdc.ast.decl;
13 | public import vdc.ast.expr;
14 | public import vdc.ast.iasm;
15 | public import vdc.ast.misc;
16 | public import vdc.ast.mod;
17 | public import vdc.ast.node;
18 | public import vdc.ast.stmt;
19 | public import vdc.ast.tmpl;
20 | public import vdc.ast.type;
21 | public import vdc.ast.writer;
22 |
--------------------------------------------------------------------------------
/vdc/dmdserver/dmdicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/vdc/dmdserver/dmdicon.ico
--------------------------------------------------------------------------------
/vdc/dmdserver/dmdlib.d:
--------------------------------------------------------------------------------
1 | module dmd.lib;
2 |
3 | class Library
4 | {
5 | }
6 |
--------------------------------------------------------------------------------
/vdc/dmdserver/dmdserver.idl:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2012 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | // bring in core IDL files
10 | import "oaidl.idl";
11 | import "../ivdserver.idl";
12 |
13 | // library statement
14 | [uuid(002a2de9-8bb6-484d-9907-7e4ad4084715), version(1.0),
15 | helpstring("DMD Semantic Server")]
16 | library VDServerLib
17 | {
18 | importlib("stdole32.tlb");
19 | [uuid(002a2de9-8bb6-484d-9906-7e4ad4084715)]
20 | coclass VDServerClassFactory
21 | {
22 | [default] interface IVDServer;
23 | };
24 | };
25 |
26 |
--------------------------------------------------------------------------------
/vdc/ivdserver.idl:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2012 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | // bring in core IDL files
10 | import "oaidl.idl";
11 |
12 | [
13 | object,
14 | uuid(002a2de9-8bb6-484d-9901-7e4ad4084715),
15 | dual,
16 | nonextensible,
17 | helpstring("IVDServer Interface"),
18 | pointer_default(unique)
19 | ]
20 | interface IVDServer : IUnknown
21 | {
22 | HRESULT ConfigureSemanticProject([in] BSTR filename, [in] BSTR imp, [in] BSTR stringImp, [in] BSTR versionids, [in] BSTR debugids, [in] BSTR cmdline, [in] DWORD flags);
23 | HRESULT ClearSemanticProject();
24 | HRESULT UpdateModule([in] BSTR filename, [in] BSTR srcText, [in] DWORD flags);
25 | HRESULT GetTip([in] BSTR filename, [in] DWORD startLine, [in] DWORD startIndex, [in] DWORD endLine, [in] DWORD endIndex, [in] DWORD flags);
26 | HRESULT GetTipResult([out] DWORD *startLine, [out] DWORD *startIndex, [out] DWORD *endLine, [out] DWORD *endIndex, [out,retval] BSTR* answer);
27 | HRESULT GetSemanticExpansions([in] BSTR filename, [in] BSTR tok, [in] DWORD line, [in] DWORD idx, [in] BSTR expr);
28 | HRESULT GetSemanticExpansionsResult([out,retval] BSTR* stringList);
29 | HRESULT IsBinaryOperator([in] BSTR filename, [in] DWORD startLine, [in] DWORD startIndex, [in] DWORD endLine, [in] DWORD endIndex, [out,retval] BOOL* pIsOp);
30 | HRESULT GetParseErrors([in] BSTR filename, [out, retval] BSTR* errors);
31 | HRESULT GetBinaryIsInLocations([in] BSTR filename, [out,retval] VARIANT* locs); // array of pairs of DWORD
32 | HRESULT GetDocumentOutline([in] BSTR filename, [out, retval] BSTR* stringList);
33 | HRESULT GetLastMessage([out,retval] BSTR* message);
34 | HRESULT GetIdentifierTypes([in] BSTR filename, [in] DWORD startLine, [in] DWORD endLine, [in] DWORD flags);
35 | HRESULT GetIdentifierTypesResult([out, retval] BSTR* types);
36 | HRESULT GetDefinition([in] BSTR filename, [in] DWORD startLine, [in] DWORD startIndex, [in] DWORD endLine, [in] DWORD endIndex);
37 | HRESULT GetDefinitionResult([out] DWORD *startLine, [out] DWORD *startIndex, [out] DWORD *endLine, [out] DWORD *endIndex, [out,retval] BSTR* filename);
38 | HRESULT GetReferences([in] BSTR filename, [in] BSTR tok, [in] DWORD line, [in] DWORD idx, [in] BSTR expr, [in] BOOL moduleOnly);
39 | HRESULT GetReferencesResult([out,retval] BSTR* stringList);
40 | HRESULT ConfigureCommentTasks([in] BSTR tasks);
41 | HRESULT GetCommentTasks([in] BSTR filename, [out,retval] BSTR* tasks);
42 | HRESULT GetParameterStorageLocs([in] BSTR filename, [out, retval] VARIANT* locs); // array of triplets of DWORD
43 | };
44 |
45 |
--------------------------------------------------------------------------------
/vdc/logger.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010-2011 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | module vdc.logger;
10 |
11 | import std.stdio;
12 | import std.file;
13 | import std.datetime;
14 | import std.conv;
15 | import std.string;
16 | import std.array;
17 |
18 | extern(Windows) void OutputDebugStringA(const char* lpOutputString);
19 | extern(Windows) uint GetCurrentThreadId();
20 |
21 | import core.sys.windows.windows;
22 |
23 | __gshared int gLogIndent = 0;
24 | __gshared bool gLogFirst = true;
25 | __gshared const string gLogFile = "c:/tmp/parser.log";
26 |
27 | debug version = enableLog;
28 |
29 | version(enableLog) {
30 |
31 | struct LogIndent
32 | {
33 | this(int n)
34 | {
35 | indent = n;
36 | gLogIndent += indent;
37 | }
38 | ~this()
39 | {
40 | gLogIndent -= indent;
41 | }
42 | int indent;
43 | }
44 |
45 | mixin template logIndent(int n = 1)
46 | {
47 | LogIndent indent = LogIndent(n);
48 | }
49 |
50 | static shared(Object) logSync = new shared(Object);
51 |
52 | void logInfo(T...)(string fmt, T args)
53 | {
54 | auto buffer = new char[17 + 1];
55 | SysTime now = Clock.currTime();
56 | uint tid = GetCurrentThreadId();
57 | auto len = sprintf(buffer.ptr, "%02d:%02d:%02d - %04x - ",
58 | now.hour, now.minute, now.second, tid);
59 | string s = to!string(buffer[0..len]);
60 | s ~= replicate(" ", gLogIndent);
61 |
62 | try {
63 | import std.format;
64 | s ~= std.format.format(fmt, args);
65 | }
66 | catch(Exception e)
67 | {
68 | string msg = e.toString();
69 | s ~= " EXCEPTION";
70 | }
71 |
72 | log_string(s);
73 | }
74 |
75 | void log_string(string s)
76 | {
77 | s ~= "\n";
78 | if(gLogFile.length == 0)
79 | OutputDebugStringA(toStringz(s));
80 | else
81 | synchronized(logSync)
82 | {
83 | if(gLogFirst)
84 | {
85 | gLogFirst = false;
86 | s = "\n" ~ replicate("=", 80) ~ "\n" ~ s;
87 | }
88 | std.file.append(gLogFile, s);
89 | }
90 | }
91 | }
92 | else
93 | {
94 | struct LogIndent
95 | {
96 | this(int n)
97 | {
98 | }
99 | }
100 | void logInfo(...)
101 | {
102 | }
103 | void log_string(string s)
104 | {
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/vdc/vdserver.idl:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2012 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | // bring in core IDL files
10 | import "oaidl.idl";
11 | import "ivdserver.idl";
12 |
13 | // library statement
14 | [uuid(002a2de9-8bb6-484d-9903-7e4ad4084715), version(1.0),
15 | helpstring("Visual D Semantic Server")]
16 | library VDServerLib
17 | {
18 | importlib("stdole32.tlb");
19 | [uuid(002a2de9-8bb6-484d-9902-7e4ad4084715)]
20 | coclass VDServerClassFactory
21 | {
22 | [default] interface IVDServer;
23 | };
24 | };
25 |
26 |
--------------------------------------------------------------------------------
/vdc/vdserver.reg:
--------------------------------------------------------------------------------
1 | REGEDIT
2 | HKEY_CLASSES_ROOT\visuald.vdserver.factory\CLSID = {002a2de9-8bb6-484d-9902-7e4ad4084715}
3 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9902-7e4ad4084715} = visuald.vdserver.factory
4 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9902-7e4ad4084715}\LocalServer32 = m:\s\d\visuald\trunk\bin\Debug\vdserver.exe
5 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9902-7e4ad4084715}\TypeLib = {002a2de9-8bb6-484d-9903-7e4ad4084715}
6 | HKEY_CLASSES_ROOT\TypeLib\{002a2de9-8bb6-484d-9903-7e4ad4084715}\1.0\0\win32 = m:\s\d\visuald\trunk\bin\Debug\vdserver.exe
7 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9901-7e4ad4084715} = IVDServer
8 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9901-7e4ad4084715}\ProxyStubClsid32 = {00020424-0000-0000-C000-000000000046}
9 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9901-7e4ad4084715}\TypeLib = {002a2de9-8bb6-484d-9903-7e4ad4084715}
10 |
--------------------------------------------------------------------------------
/vdc/vdserver_d.reg:
--------------------------------------------------------------------------------
1 | REGEDIT
2 | HKEY_CLASSES_ROOT\visuald.vdserver_d.factory\CLSID = {002a2de9-8bb6-484d-9A02-7e4ad4084715}
3 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9A02-7e4ad4084715} = visuald.vdserver_d.factory
4 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9A02-7e4ad4084715}\LocalServer32 = m:\s\d\visuald\trunk\bin\Debug\vdserver_d.exe
5 | HKEY_CLASSES_ROOT\CLSID\{002a2de9-8bb6-484d-9A02-7e4ad4084715}\TypeLib = {002a2de9-8bb6-484d-9A03-7e4ad4084715}
6 | HKEY_CLASSES_ROOT\TypeLib\{002a2de9-8bb6-484d-9A03-7e4ad4084715}\1.0\0\win32 = m:\s\d\visuald\trunk\bin\Debug\vdserver_d.exe
7 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9A01-7e4ad4084715} = IVDServer
8 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9A01-7e4ad4084715}\ProxyStubClsid32 = {00020424-0000-0000-C000-000000000046}
9 | HKEY_CLASSES_ROOT\Interface\{002a2de9-8bb6-484d-9A01-7e4ad4084715}\TypeLib = {002a2de9-8bb6-484d-9A03-7e4ad4084715}
10 |
--------------------------------------------------------------------------------
/vdextensions/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("vdextensions")]
9 | [assembly: AssemblyDescription("Extension to the Visual D package for Visual Studio")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Rainer Schuetze")]
12 | [assembly: AssemblyProduct("vdextensions")]
13 | [assembly: AssemblyCopyright("Copyright 2013-2018 Rainer Schuetze")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.*")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/vdextensions/Properties/AssemblyInfo15.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("vdext15")]
9 | [assembly: AssemblyDescription("Extension to the Visual D package for Visual Studio 2017 and later")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Rainer Schuetze")]
12 | [assembly: AssemblyProduct("vdext15")]
13 | [assembly: AssemblyCopyright("Copyright 2019 Rainer Schuetze")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.*")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/vdextensions/vdext15.cs:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2016 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | using System;
10 | using System.Runtime.InteropServices; // DllImport
11 |
12 | namespace vdext15
13 | {
14 | public class IID
15 | {
16 | public const string IVisualDHelper15 = "002a2de9-8bb6-484d-9915-7e4ad4084715";
17 | public const string VisualDHelper15 = "002a2de9-8bb6-484d-AA15-7e4ad4084715";
18 | }
19 |
20 | [ComVisible(true), Guid(IID.IVisualDHelper15)]
21 | [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
22 | public interface IVisualDHelper15
23 | {
24 | }
25 |
26 | [ComVisible(true), Guid(IID.VisualDHelper15)]
27 | [ClassInterface(ClassInterfaceType.None)]
28 | public partial class VisualDHelper15 : IVisualDHelper15
29 | {
30 | public VisualDHelper15()
31 | {
32 | }
33 |
34 | public void Dispose()
35 | {
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/vdextensions/vdextensions.cs:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2016 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | using System;
10 | using System.Runtime.InteropServices; // DllImport
11 |
12 | using Microsoft.VisualStudio.Text.Editor;
13 | using Microsoft.VisualStudio.Editor;
14 | using Microsoft.VisualStudio.TextManager.Interop;
15 | using Microsoft.VisualStudio.Shell.Interop;
16 |
17 | namespace vdextensions
18 | {
19 | public class IID
20 | {
21 | public const string IVisualDHelper = "002a2de9-8bb6-484d-9910-7e4ad4084715";
22 | public const string VisualDHelper = "002a2de9-8bb6-484d-AA10-7e4ad4084715";
23 | }
24 |
25 | [ComVisible(true), Guid(IID.IVisualDHelper)]
26 | [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
27 | public interface IVisualDHelper
28 | {
29 | void GetTextOptions(IVsTextView view, out int flags, out int tabsize, out int indentsize);
30 | }
31 |
32 | [ComVisible(true), Guid(IID.VisualDHelper)]
33 | [ClassInterface(ClassInterfaceType.None)]
34 | public partial class VisualDHelper : IVisualDHelper
35 | {
36 | static IVsEditorAdaptersFactoryService editorFactory;
37 |
38 | public static bool setFactory(IVsEditorAdaptersFactoryService factory)
39 | {
40 | editorFactory = factory;
41 | return true;
42 | }
43 |
44 | public VisualDHelper()
45 | {
46 | }
47 |
48 | public void Dispose()
49 | {
50 | }
51 |
52 | public void GetTextOptions(IVsTextView view, out int flags, out int tabsize, out int indentsize)
53 | {
54 | if (editorFactory == null)
55 | throw new COMException();
56 |
57 | IWpfTextView wv = editorFactory.GetWpfTextView(view);
58 | if (wv == null || wv.Options == null)
59 | throw new COMException();
60 |
61 | bool spaces = wv.Options.GetOptionValue(DefaultOptions.ConvertTabsToSpacesOptionId);
62 | flags = spaces ? 1 : 0;
63 | tabsize = wv.Options.GetOptionValue(DefaultOptions.TabSizeOptionId);
64 | indentsize = wv.Options.GetOptionValue(DefaultOptions.IndentSizeOptionId);
65 | }
66 |
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/vdwizard/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("VisualDWizard")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("VisualDWizard")]
13 | [assembly: AssemblyCopyright("")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.*")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/vdwizard/Resources/vd_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/vdwizard/Resources/vd_logo.png
--------------------------------------------------------------------------------
/vdwizard/WizardDialog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace VisualDWizard
12 | {
13 | public partial class WizardDialog : Form
14 | {
15 | public WizardDialog()
16 | {
17 | InitializeComponent();
18 | platformX86.CheckState = CheckState.Checked;
19 | platformX64.CheckState = CheckState.Checked;
20 | compilerDMD.CheckState = CheckState.Checked;
21 | prjTypeConsole.Select();
22 | Warning1.Visible = false;
23 | Warning2.Visible = false;
24 |
25 | ToolTip toolTip = new ToolTip();
26 | toolTip.SetToolTip(platformx86OMF, "Digital Mars OMF object files, only available with DMD");
27 | toolTip.SetToolTip(compilerGDC, "only available with DMD");
28 |
29 | CenterToScreen();
30 | }
31 |
32 | private void platform_CheckedChanged(object sender, EventArgs e)
33 | {
34 | if (!platformX64.Checked && !platformX86.Checked)
35 | platformX64.Checked = true;
36 | platformx86OMF.Enabled = platformX86.Checked && compilerGDC.Enabled;
37 | Warning1.Visible = !platformX86.Checked && !compilerGDC.Enabled;
38 | Warning2.Visible = !platformX86.Checked && !compilerGDC.Enabled;
39 | }
40 |
41 | private void compiler_CheckedChanged(object sender, EventArgs e)
42 | {
43 | if (!compilerDMD.Checked && !compilerLDC.Checked && !compilerGDC.Checked)
44 | compilerDMD.Checked = true;
45 | }
46 |
47 | private void prjTypeConsole_CheckedChanged(object sender, EventArgs e)
48 | {
49 | mainInCpp.Enabled = prjTypeConsole.Checked;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/vdwizard/dwinproj.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/vdwizard/dwinproj.ico
--------------------------------------------------------------------------------
/vdwizard/key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/vdwizard/key.snk
--------------------------------------------------------------------------------
/visuald/Resources/AlternateRowColor.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/AlternateRowColor.ico
--------------------------------------------------------------------------------
/visuald/Resources/CaseSensitive.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/CaseSensitive.ico
--------------------------------------------------------------------------------
/visuald/Resources/Caseinsensitive.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/Caseinsensitive.ico
--------------------------------------------------------------------------------
/visuald/Resources/Caseinsensitive.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/Caseinsensitive.xcf
--------------------------------------------------------------------------------
/visuald/Resources/CombineColumns.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/CombineColumns.ico
--------------------------------------------------------------------------------
/visuald/Resources/DAboutBox.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/DAboutBox.ico
--------------------------------------------------------------------------------
/visuald/Resources/DAboutLogo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/DAboutLogo.ico
--------------------------------------------------------------------------------
/visuald/Resources/DImageList.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/DImageList.bmp
--------------------------------------------------------------------------------
/visuald/Resources/DSplashScreenIcon.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/DSplashScreenIcon.bmp
--------------------------------------------------------------------------------
/visuald/Resources/GroupByType.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/GroupByType.ico
--------------------------------------------------------------------------------
/visuald/Resources/RegExp.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/RegExp.ico
--------------------------------------------------------------------------------
/visuald/Resources/SearchFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/SearchFile.ico
--------------------------------------------------------------------------------
/visuald/Resources/SearchSymbol.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/SearchSymbol.ico
--------------------------------------------------------------------------------
/visuald/Resources/WholeWord.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/WholeWord.ico
--------------------------------------------------------------------------------
/visuald/Resources/ascend.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/ascend.ico
--------------------------------------------------------------------------------
/visuald/Resources/closeOnReturn.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/closeOnReturn.ico
--------------------------------------------------------------------------------
/visuald/Resources/closeOnReturn.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/closeOnReturn.xcf
--------------------------------------------------------------------------------
/visuald/Resources/completionset.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/completionset.bmp
--------------------------------------------------------------------------------
/visuald/Resources/dconsole.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/dconsole.ico
--------------------------------------------------------------------------------
/visuald/Resources/descend.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/descend.ico
--------------------------------------------------------------------------------
/visuald/Resources/dfile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/dfile.ico
--------------------------------------------------------------------------------
/visuald/Resources/difile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/difile.ico
--------------------------------------------------------------------------------
/visuald/Resources/dub.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/dub.ico
--------------------------------------------------------------------------------
/visuald/Resources/dwinproj.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/dwinproj.ico
--------------------------------------------------------------------------------
/visuald/Resources/faninout.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/faninout.ico
--------------------------------------------------------------------------------
/visuald/Resources/fulldeco.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/fulldeco.ico
--------------------------------------------------------------------------------
/visuald/Resources/refresh.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/refresh.ico
--------------------------------------------------------------------------------
/visuald/Resources/removetrace.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/removetrace.ico
--------------------------------------------------------------------------------
/visuald/Resources/resources.h:
--------------------------------------------------------------------------------
1 |
2 | #define IDS_PACKAGE_LOAD_KEY 1
3 | #define IDS_PRODUCTDETAILS 100
4 | #define IDS_PRODUCT 101
5 | #define IDS_VDSETTINGS 102
6 | #define IDS_VDPROJECTDESC 103
7 | #define IDS_VCPROJECTDESC 104
8 |
9 | #define ICON_ABOUTBOX 1000
10 | #define BMP_SPLASHSCRN 1001
11 | #define BMP_DIMAGELIST 1002
12 | #define BMP_COMPLETION 1003
13 | #define ICON_DUB 1004
14 | #define ICON_DCONSOLE 1005
15 | #define ICON_DWINPROJ 1006
16 |
17 | #define IDI_ASCENDING 2000
18 | #define IDI_DESCENDING 2001
19 |
20 | #define IDR_FIRST 2002
21 | #define IDR_COMBINECOLUMNS 2002
22 | #define IDR_ALTERNATEROWCOLOR 2003
23 | #define IDR_GROUPBYKIND 2004
24 | #define IDR_CLOSEONRETURN 2005
25 | #define IDR_WHOLEWORD 2006
26 | #define IDR_CASESENSITIVE 2007
27 | #define IDR_REGEXP 2008
28 | #define IDR_SEARCHFILE 2009
29 | #define IDR_SEARCHSYMBOL 2010
30 | #define IDR_FANINOUT 2011
31 | #define IDR_REMOVETRACE 2012
32 | #define IDR_SETTRACE 2013
33 | #define IDR_REFRESH 2014
34 | #define IDR_FULLDECO 2015
35 | #define IDR_LAST 2015
36 |
37 | ///////////////////////////////////////////////////////////////////////////////
38 | // CTC Command IDs
39 |
40 | #define CmdSearchSymbol 0x101
41 | #define CmdSearchFile 0x102
42 | #define CmdShowScope 0x103
43 | #define CmdShowMethodTip 0x104
44 | #define CmdToggleComment 0x105
45 | #define CmdReplaceTokens 0x106
46 | #define CmdSearchTokNext 0x107
47 | #define CmdSearchTokPrev 0x108
48 | #define CmdConvWizard 0x109
49 | #define CmdConvSelection 0x10a
50 |
51 | #define CmdBuildPhobos 0x110
52 | #define CmdShowProfile 0x111
53 | #define CmdShowWebsite 0x112
54 |
55 | #define CmdDeleteFile 0x113
56 | #define CmdCompileAndRun 0x114
57 | #define CmdShowLangPage 0x115
58 | #define CmdDelLstFiles 0x116
59 | #define CmdCompileAndDbg 0x117
60 | #define CmdCompileAndAsm 0x118
61 | #define CmdDustMite 0x119
62 |
63 | #define CmdCollapseUnittest 0x120
64 | #define CmdCollapseDisabled 0x121
65 |
66 | #define CmdNewPackage 0x122
67 | #define CmdNewFilter 0x123
68 |
69 | #define CmdDubUpgrade 0x124
70 | #define CmdDubRefresh 0x125
71 |
--------------------------------------------------------------------------------
/visuald/Resources/settrace.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Resources/settrace.ico
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/blockcomment.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | /+ .. +/
6 | /++/
7 | Code snippet for nesting block comment
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/class.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | class
6 | class
7 | Code snippet for class
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 | name
18 | Class name
19 | ClassName
20 |
21 |
22 |
23 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/ctor.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ctor
6 | ctor
7 | Code snippet for constructor
8 | Rainer Schuetze
9 |
10 | Expansion
11 |
12 |
13 |
14 |
15 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/else.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | else
6 | else
7 | Code snippet for else statement
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/for.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | for
6 | for
7 | Code snippet for 'for' loop
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 | index
18 | i
19 | Index
20 |
21 |
22 | max
23 | length
24 | Max length
25 |
26 |
27 |
28 |
29 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/if.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | if
6 | if
7 | Code snippet for if statement
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 | expression
18 | Expression to evaluate
19 | true
20 |
21 |
22 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/version.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | version
6 | version
7 | Code snippet for version statement
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 | identifier
18 | Identifier or level
19 | none
20 |
21 |
22 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/Snippets/while.snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | while
6 | while
7 | Code snippet for while loop
8 | Rainer Schuetze
9 |
10 | Expansion
11 | SurroundsWith
12 |
13 |
14 |
15 |
16 |
17 | expression
18 | Expression to evaluate
19 | true
20 |
21 |
22 |
23 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/visuald/Templates/CodeSnippets/SnippetsIndex.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | On
6 | true
7 | 1033
8 | .\Snippets\
9 | D
10 |
11 |
12 |
--------------------------------------------------------------------------------
/visuald/Templates/Items/empty.d:
--------------------------------------------------------------------------------
1 | module $modulename$;
2 |
--------------------------------------------------------------------------------
/visuald/Templates/Items/hello.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | int main(char[][]argv)
4 | {
5 | writefln("Hello D-World!\n");
6 | return 0;
7 | }
8 |
--------------------------------------------------------------------------------
/visuald/Templates/Items/items.vsdir:
--------------------------------------------------------------------------------
1 | hello.d|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Hello world Module|1|Create "Hello world" module|0|#1000|0|dsource
2 | empty.d|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Empty Module|1|Create empty module|0|#1000|0|dsource
3 | ..\Wizards\package.vsz|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Package|1|Create package folder in project and file system|0|#1000|8|dpackage
4 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/minimal/app.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | void main()
4 | {
5 | writeln("Edit source/app.d to start your project.");
6 | }
7 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/minimal/dub.sdl:
--------------------------------------------------------------------------------
1 | name "$safeprojectname$"
2 | description "A minimal D application."
3 | authors "$username$"
4 | copyright "Copyright © $year$, $username$"
5 | license "proprietary"
6 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/minimal/minimal.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | minimal
4 | A minimal D application
5 | __TemplateIcon.ico
6 | DUB
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | app.d
16 | dub.sdl
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/vibe/app.d:
--------------------------------------------------------------------------------
1 | import vibe.vibe;
2 |
3 | void main()
4 | {
5 | auto settings = new HTTPServerSettings;
6 | settings.port = 8080;
7 | settings.bindAddresses = ["::1", "127.0.0.1"];
8 | listenHTTP(settings, &hello);
9 |
10 | logInfo("Please open http://127.0.0.1:8080/ in your browser.");
11 | runApplication();
12 | }
13 |
14 | void hello(HTTPServerRequest req, HTTPServerResponse res)
15 | {
16 | res.writeBody("Hello, World!");
17 | }
18 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/vibe/dub.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "$safeprojectname$",
3 | "authors": [
4 | "$username$"
5 | ],
6 | "dependencies": {
7 | "vibe-d": "~>0.7.30"
8 | },
9 | "description": "A simple vibe.d server application.",
10 | "copyright": "Copyright © $year$, $username$",
11 | "license": "proprietary"
12 | }
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/DUB/vibe/dub_vibe_d.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Vibe.d server
4 | A simple vibe.d server application
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | app.d
16 | dub.json
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/VCProject.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | D/VC++ based Windows Application
4 | A Visual C++ project for creating a Win32 application, console application, DLL or static library. This is based on Visual C++'s vcxproj project type for seamless integration with C++ and msbuild.
5 | dwinproj.ico
6 | D
7 | 50
8 | 1
9 | true
10 | true
11 | WindowsApplication
12 | true
13 | D
14 | Windows
15 | Visual D
16 |
17 |
18 |
19 | main.d
20 |
21 |
22 |
23 |
24 | VisualDWizard, Version=1.0, Culture=neutral, PublicKeyToken=c74ad3042b283f5c
25 | VisualDWizard.VCProjectWizard
26 |
27 |
28 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/WindowsApp.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $guid2$
6 | cpp;c;cc;cxx;d;di;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | $guid3$
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 |
14 |
15 | Source Files
16 |
17 |
18 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/dwinproj.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Templates/ProjectItems/VCProject/dwinproj.ico
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/main.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
3 | // D runtime initialization/termination
4 | extern "C" void rt_init();
5 | extern "C" void rt_term();
6 |
7 | int helloFromD();
8 |
9 | int main(int argc, char** argv)
10 | {
11 | rt_init();
12 | int rc = helloFromD();
13 | rt_term();
14 | return rc;
15 | }
16 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/main.d:
--------------------------------------------------------------------------------
1 | module $safeprojectname$;
2 | $if$ ($apptype$ == WindowsApp)
3 | import core.sys.windows.windows;
4 |
5 | alias extern(C) int function(string[] args) MainFunc;
6 | extern (C) int _d_run_main(int argc, char **argv, MainFunc mainFunc);
7 |
8 | extern (Windows)
9 | int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
10 | {
11 | return _d_run_main(0, null, &main); // arguments unused, retrieved via CommandLineToArgvW
12 | }
13 |
14 | extern(C) int main(string[] args)
15 | {
16 | MessageBoxW(null, "Hello D World!"w.ptr, "D Windows Application"w.ptr, MB_OK);
17 | return 0;
18 | }
19 | $endif$$if$ ($apptype$ == ConsoleApp)
20 | import std.stdio;
21 |
22 | int main()
23 | {
24 | writeln("Hello D World!\n");
25 | return 0;
26 | }
27 | $endif$$if$ ($apptype$ == ConsoleAppMainInCpp)
28 | import std.stdio;
29 |
30 | extern(C++) int helloFromD()
31 | {
32 | writeln("Hello D World!\n");
33 | return 0;
34 | }
35 | $endif$$if$ ($apptype$ == DynamicLibrary)
36 | import core.sys.windows.windows;
37 | import core.sys.windows.dll;
38 |
39 | export int foo()
40 | {
41 | return 42;
42 | }
43 |
44 | mixin SimpleDllMain;
45 | $endif$$if$ ($apptype$ == StaticLibrary)
46 | int foo()
47 | {
48 | return 42;
49 | }
50 | $endif$
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // [!output PROJECT_NAME].pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 | // TODO: reference any additional headers you need in STDAFX.H
8 | // and not in this file
9 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VCProject/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #pragma once
7 |
8 | // C RunTime Header Files
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 |
15 | // TODO: reference additional headers your program requires here
16 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VDProject/VDProject.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Visual D based Windows Application
4 | A Visual D project for creating a Win32 application, console application, DLL or static library. This is based on a project type designed for the D programming language.
5 |
6 | vdproj.ico
7 | D
8 | 50
9 | 1
10 | true
11 | WindowsApp
12 | true
13 | D
14 | Windows
15 | Visual D
16 |
17 |
18 |
19 | main.d
20 |
21 |
22 |
23 | VisualDWizard, Version=1.0, Culture=neutral, PublicKeyToken=c74ad3042b283f5c
24 | VisualDWizard.VDProjectWizard
25 |
26 |
27 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VDProject/main.d:
--------------------------------------------------------------------------------
1 | module $safeprojectname$;
2 | $if$ ($apptype$ == WindowsApp)
3 | import core.sys.windows.windows;
4 |
5 | alias extern(C) int function(string[] args) MainFunc;
6 | extern (C) int _d_run_main(int argc, char **argv, MainFunc mainFunc);
7 |
8 | extern (Windows)
9 | int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
10 | {
11 | return _d_run_main(0, null, &win_main); // arguments unused, retrieved via CommandLineToArgvW
12 | }
13 |
14 | extern(C) int win_main(string[] args)
15 | {
16 | MessageBoxW(null, "Hello D World!"w.ptr, "D Windows Application"w.ptr, MB_OK);
17 | return 0;
18 | }
19 | $endif$$if$ ($apptype$ == ConsoleApp)
20 | import std.stdio;
21 |
22 | int main()
23 | {
24 | writeln("Hello D World!\n");
25 | return 0;
26 | }
27 | $endif$$if$ ($apptype$ == DynamicLibrary)
28 | import core.sys.windows.windows;
29 | import core.sys.windows.dll;
30 |
31 | export int foo()
32 | {
33 | return 42;
34 | }
35 |
36 | mixin SimpleDllMain;
37 | $endif$$if$ ($apptype$ == StaticLibrary)
38 | int foo()
39 | {
40 | return 42;
41 | }
42 | $endif$
43 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems/VDProject/vdproj.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rainers/visuald/1408d61f53b9e101f7233112e706f0628057ca0d/visuald/Templates/ProjectItems/VDProject/vdproj.ico
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleApp/ConsoleApp.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleApp/ConsoleApp.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Console Application
4 | A project for creating a command-line application
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | main.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleApp/main.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | int main(string[] argv)
4 | {
5 | writeln("Hello D-World!");
6 | return 0;
7 | }
8 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDLG/ConsoleApp.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 | 0
5 | 0
6 | 1
7 | 1
8 | 0
9 |
10 |
11 | 0
12 | 0
13 | 0
14 | 1
15 | 1
16 | 1
17 |
18 |
19 | 1
20 | 0
21 | 1
22 | 1
23 | 0
24 |
25 |
26 | 1
27 | 0
28 | 0
29 | 1
30 | 1
31 | 1
32 |
33 |
34 | 0
35 | 2
36 | 1
37 | 1
38 | 0
39 |
40 |
41 | 0
42 | 2
43 | 0
44 | 1
45 | 1
46 | 1
47 |
48 |
49 | 1
50 | 2
51 | 1
52 | 1
53 | 0
54 |
55 |
56 | 1
57 | 2
58 | 0
59 | 1
60 | 1
61 | 1
62 |
63 |
64 | 0
65 | 1
66 | 1
67 | 1
68 | 0
69 |
70 |
71 | 0
72 | 1
73 | 0
74 | 1
75 | 1
76 | 1
77 |
78 |
79 | 1
80 | 1
81 | 1
82 | 1
83 | 0
84 |
85 |
86 | 1
87 | 1
88 | 0
89 | 1
90 | 1
91 | 1
92 |
93 |
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDLG/ConsoleApp.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Console Application DMD/LDC/GDC x86/x64
4 | A project for creating a command-line application with DMD/LDC/GDC for x86/x64
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | main.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDLG/main.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | int main(string[] argv)
4 | {
5 | writeln("Hello D-World!");
6 | return 0;
7 | }
8 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDGDC/ConsoleApp.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 | 0
5 | 0
6 | 1
7 | 1
8 | 0
9 |
10 |
11 | 0
12 | 0
13 | 0
14 | 1
15 | 1
16 | 1
17 |
18 |
19 | 1
20 | 0
21 | 1
22 | 1
23 | 0
24 |
25 |
26 | 1
27 | 0
28 | 0
29 | 1
30 | 1
31 | 1
32 |
33 |
34 | 0
35 | 1
36 | 1
37 | 1
38 | 0
39 |
40 |
41 | 0
42 | 1
43 | 0
44 | 1
45 | 1
46 | 1
47 |
48 |
49 | 1
50 | 1
51 | 1
52 | 1
53 | 0
54 |
55 |
56 | 1
57 | 1
58 | 0
59 | 1
60 | 1
61 | 1
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDGDC/ConsoleApp.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Console Application DMD/GDC x86/x64
4 | A project for creating a command-line application with DMD/GDC for x86/x64
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | main.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDGDC/main.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | int main(string[] argv)
4 | {
5 | writeln("Hello D-World!");
6 | return 0;
7 | }
8 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDLDC/ConsoleApp.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 | 0
5 | 0
6 | 1
7 | 1
8 | 0
9 |
10 |
11 | 0
12 | 0
13 | 0
14 | 1
15 | 1
16 | 1
17 |
18 |
19 | 1
20 | 0
21 | 1
22 | 1
23 | 0
24 |
25 |
26 | 1
27 | 0
28 | 0
29 | 1
30 | 1
31 | 1
32 |
33 |
34 | 0
35 | 2
36 | 1
37 | 1
38 | 0
39 |
40 |
41 | 0
42 | 2
43 | 0
44 | 1
45 | 1
46 | 1
47 |
48 |
49 | 1
50 | 2
51 | 1
52 | 1
53 | 0
54 |
55 |
56 | 1
57 | 2
58 | 0
59 | 1
60 | 1
61 | 1
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDLDC/ConsoleApp.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Console Application DMD/LDC x86/x64
4 | A project for creating a command-line application with DMD/LDC for x86/x64
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | main.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/ConsoleDMDLDC/main.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | int main(string[] argv)
4 | {
5 | writeln("Hello D-World!");
6 | return 0;
7 | }
8 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/minimal/app.d:
--------------------------------------------------------------------------------
1 | import std.stdio;
2 |
3 | void main()
4 | {
5 | writeln("Edit source/app.d to start your project.");
6 | }
7 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/minimal/dub.sdl:
--------------------------------------------------------------------------------
1 | name "$safeprojectname$"
2 | description "A minimal D application."
3 | authors "$username$"
4 | copyright "Copyright © $year$, $username$"
5 | license "proprietary"
6 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/minimal/minimal.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | minimal
4 | A minimal D application
5 | __TemplateIcon.ico
6 | DUB
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | app.d
16 | dub.sdl
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/vibe/app.d:
--------------------------------------------------------------------------------
1 | import vibe.vibe;
2 |
3 | void main()
4 | {
5 | auto settings = new HTTPServerSettings;
6 | settings.port = 8080;
7 | settings.bindAddresses = ["::1", "127.0.0.1"];
8 | listenHTTP(settings, &hello);
9 |
10 | logInfo("Please open http://127.0.0.1:8080/ in your browser.");
11 | runApplication();
12 | }
13 |
14 | void hello(HTTPServerRequest req, HTTPServerResponse res)
15 | {
16 | res.writeBody("Hello, World!");
17 | }
18 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/vibe/dub.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "$safeprojectname$",
3 | "authors": [
4 | "$username$"
5 | ],
6 | "dependencies": {
7 | "vibe-d": "~>0.7.30"
8 | },
9 | "description": "A simple vibe.d server application.",
10 | "copyright": "Copyright © $year$, $username$",
11 | "license": "proprietary"
12 | }
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DUB/vibe/dub_vibe_d.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Vibe.d server
4 | A simple vibe.d server application
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | app.d
16 | dub.json
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DynamicLib/DynamicLib.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 |
5 | $(OutDir)\$(ProjectName).dll
6 | 2
7 |
8 |
9 | $(OutDir)\$(ProjectName).dll
10 | 2
11 |
12 |
13 |
14 | $(OutDir)\$(ProjectName).dll
15 | 2
16 |
17 |
18 | $(OutDir)\$(ProjectName).dll
19 | 2
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DynamicLib/DynamicLib.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Dynamic library
4 | A project for creating a dynamic library
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | DynamicLibrary
11 | true
12 |
13 |
14 |
15 | dllmain.d
16 | dll.def
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DynamicLib/dll.def:
--------------------------------------------------------------------------------
1 | ; linker definition file
2 |
3 | ; most options not supported for x64 (EXETYPE needed by optlink)
4 | EXETYPE NT
5 | ; LIBRARY "$safeprojectname$.dll"
6 | ; CODE PRELOAD DISCARDABLE
7 | ; DATA PRELOAD MULTIPLE
8 |
9 | ; exporting can by done explicitly here, or with the "export" specifier
10 | ; EXPORTS
11 | ; Symbol Symbol
12 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/DynamicLib/dllmain.d:
--------------------------------------------------------------------------------
1 | module $safeitemname$;
2 |
3 | import core.sys.windows.windows;
4 | import core.sys.windows.dll;
5 |
6 | __gshared HINSTANCE g_hInst;
7 |
8 | extern (Windows)
9 | BOOL DllMain(HINSTANCE hInstance, ULONG ulReason, LPVOID pvReserved)
10 | {
11 | switch (ulReason)
12 | {
13 | case DLL_PROCESS_ATTACH:
14 | g_hInst = hInstance;
15 | dll_process_attach(hInstance, true);
16 | break;
17 |
18 | case DLL_PROCESS_DETACH:
19 | dll_process_detach(hInstance, true);
20 | break;
21 |
22 | case DLL_THREAD_ATTACH:
23 | dll_thread_attach(true, true);
24 | break;
25 |
26 | case DLL_THREAD_DETACH:
27 | dll_thread_detach(true, true);
28 | break;
29 |
30 | default:
31 | break;
32 | }
33 | return true;
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/StaticLib/StaticLib.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 |
5 | $(OutDir)\$(ProjectName).lib
6 | 1
7 |
8 |
9 | $(OutDir)\$(ProjectName).lib
10 | 1
11 |
12 |
13 |
14 | $(OutDir)\$(ProjectName).lib
15 | 1
16 |
17 |
18 | $(OutDir)\$(ProjectName).lib
19 | 1
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/StaticLib/StaticLib.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Static library
4 | A project for creating a static library
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | StaticLibrary
11 | true
12 |
13 |
14 |
15 | lib.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/StaticLib/lib.d:
--------------------------------------------------------------------------------
1 | module $safeitemname$;
2 |
3 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/WindowsApp/WindowsApp.visualdproj:
--------------------------------------------------------------------------------
1 |
2 | $guid1$
3 |
4 | 2
5 | ole32.lib kernel32.lib user32.lib comctl32.lib comdlg32.lib
6 |
7 |
8 | 2
9 | ole32.lib kernel32.lib user32.lib comctl32.lib comdlg32.lib
10 |
11 |
12 | 2
13 | ole32.lib kernel32.lib user32.lib comctl32.lib comdlg32.lib
14 |
15 |
16 | 2
17 | ole32.lib kernel32.lib user32.lib comctl32.lib comdlg32.lib
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/WindowsApp/WindowsApp.vstemplate:
--------------------------------------------------------------------------------
1 |
2 |
3 | Console Application
4 | A project for creating a Windows application
5 | __TemplateIcon.ico
6 | D
7 | 50
8 | 1
9 | true
10 | ConsoleApplication
11 | true
12 |
13 |
14 |
15 | winmain.d
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/visuald/Templates/ProjectItems_vs9/WindowsApp/winmain.d:
--------------------------------------------------------------------------------
1 | module winmain;
2 |
3 | import core.runtime;
4 | import core.sys.windows.windows;
5 |
6 | extern (Windows)
7 | int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
8 | {
9 | int result;
10 |
11 | try
12 | {
13 | Runtime.initialize();
14 |
15 | result = myWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
16 |
17 | Runtime.terminate();
18 | }
19 | catch (Throwable o) // catch any uncaught exceptions
20 | {
21 | MessageBoxA(null, cast(char *)o.toString(), "Error", MB_OK | MB_ICONEXCLAMATION);
22 | result = 0; // failed
23 | }
24 |
25 | return result;
26 | }
27 |
28 | int myWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
29 | {
30 | /* ... insert user code here ... */
31 | throw new Exception("not implemented");
32 | return 0;
33 | }
34 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects/DTemplates.vsdir:
--------------------------------------------------------------------------------
1 | ..\ProjectItems\VCProject\VCProject.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|D/C++ Win32 Application|30|#104|0|#1006|0|WindowsApp
2 | ..\ProjectItems\VDProject\VDProject.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Visual D Win32 Application|40|#103|0|#1000|0|WindowsApp
3 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects/DUB/DUBTemplates.VSTDIR:
--------------------------------------------------------------------------------
1 |
2 | 3
3 |
4 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects/DUB/DUBTemplates.vsdir:
--------------------------------------------------------------------------------
1 | ..\..\ProjectItems\DUB\vibe\dub_vibe_d.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|vibe.d server using DUB|30|A simple vibe.d server application|0|#1004|0|ServerApp
2 | ..\..\ProjectItems\DUB\minimal\minimal.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console application using DUB|30|A minimal D application using DUB for building|0|#1004|0|ConsoleApp
3 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects/DubTemplates.vsdir:
--------------------------------------------------------------------------------
1 | ..\ProjectItems\DUB\vibe\dub_vibe_d.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|vibe.d server using DUB|50|A simple vibe.d server application|0|#1004|0|ServerApp
2 | ..\ProjectItems\DUB\minimal\minimal.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console application using DUB|50|A minimal D application using DUB for building|0|#1004|0|ConsoleApp
3 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects_vs9/VDTemplates.VSTDIR:
--------------------------------------------------------------------------------
1 |
2 | 1
3 |
4 |
--------------------------------------------------------------------------------
/visuald/Templates/Projects_vs9/VDTemplates.vsdir:
--------------------------------------------------------------------------------
1 | ..\ProjectItems_vs9\ConsoleApp\ConsoleApp.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console Application|30|A project for creating a command-line application|0|#1000|0|ConsoleApp
2 | ..\ProjectItems_vs9\ConsoleDMDGDC\ConsoleApp.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console Application DMD/GDC|30|A project for creating a command-line application with DMD/GDC for x86/x64|0|#1000|0|ConsoleApp
3 | ..\ProjectItems_vs9\ConsoleDMDLDC\ConsoleApp.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console Application DMD/LDC|30|A project for creating a command-line application with DMD/LDC for x86/x64|0|#1000|0|ConsoleApp
4 | ..\ProjectItems_vs9\ConsoleDLG\ConsoleApp.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Console Application DMD/LDC/GDC|30|A project for creating a command-line application with DMD/LDC/GDC for x86/x64|0|#1000|0|ConsoleApp
5 | ..\ProjectItems_vs9\WindowsApp\WindowsApp.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Windows Application|30|A project for creating a Windows application|0|#1000|0|WindowsApp
6 | ..\ProjectItems_vs9\DynamicLib\DynamicLib.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Dynamic Library (DLL)|30|A project for creating a dynamic library|0|#1000|0|DynamicLib
7 | ..\ProjectItems_vs9\StaticLib\StaticLib.vstemplate|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Static Library|30|A project for creating a static library|0|#1000|0|StaticLib
8 |
--------------------------------------------------------------------------------
/visuald/Templates/VCItems/ditems.vsdir:
--------------------------------------------------------------------------------
1 | ..\Items\empty.d|{002A2DE9-8BB6-484D-987F-7E4AD4084715}|Empty D Module|1|Create empty D module|0|#1000|0|dsource
2 |
--------------------------------------------------------------------------------
/visuald/Templates/Wizards/package.vsz:
--------------------------------------------------------------------------------
1 | VSWizard 6.0
2 | Wizard={002A2DE9-8BB6-484D-980d-7E4AD4084715}
3 |
--------------------------------------------------------------------------------
/visuald/visuald.def:
--------------------------------------------------------------------------------
1 | ; visuald.def : translates the module exports
2 |
3 | EXETYPE NT
4 | LIBRARY "visuald.dll"
5 | CODE PRELOAD DISCARDABLE
6 | DATA PRELOAD MULTIPLE
7 |
8 |
9 | EXPORTS
10 | DllCanUnloadNow = DllCanUnloadNow PRIVATE
11 | DllGetClassObject = DllGetClassObject PRIVATE
12 | DllRegisterServer = DllRegisterServer PRIVATE
13 | DllUnregisterServer = DllUnregisterServer PRIVATE
14 | VSDllRegisterServer = VSDllRegisterServer PRIVATE
15 | VSDllUnregisterServer = VSDllUnregisterServer PRIVATE
16 | VSDllRegisterServerUser = VSDllRegisterServerUser PRIVATE
17 | VSDllUnregisterServerUser = VSDllUnregisterServerUser PRIVATE
18 | RunDLLRegister = RunDLLRegister PRIVATE
19 | RunDLLUnregister = RunDLLUnregister PRIVATE
20 | RunDLLRegisterUser = RunDLLRegisterUser PRIVATE
21 | RunDLLUnregisterUser = RunDLLUnregisterUser PRIVATE
22 | VerifyMSObjW = VerifyMSObjW PRIVATE
23 | WritePackageDefW = WritePackageDefW PRIVATE
24 | GetCoverageData = GetCoverageData PRIVATE
25 | GenerateGeneralXMLW = GenerateGeneralXMLW PRIVATE
26 | GetTooltip = GetTooltip PRIVATE
27 | GetTooltipResult = GetTooltipResult PRIVATE
28 | GetParameterStorageLocs = GetParameterStorageLocs PRIVATE
29 |
--------------------------------------------------------------------------------
/visuald/windows.d:
--------------------------------------------------------------------------------
1 | // This file is part of Visual D
2 | //
3 | // Visual D integrates the D programming language into Visual Studio
4 | // Copyright (c) 2010 by Rainer Schuetze, All Rights Reserved
5 | //
6 | // Distributed under the Boost Software License, Version 1.0.
7 | // See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt
8 |
9 | module visuald.windows;
10 |
11 | import sdk.win32.commctrl;
12 |
13 | pragma(lib,"ole32.lib");
14 | pragma(lib,"comctl32.lib");
15 |
16 | HRESULT HResultFromLastError()
17 | {
18 | return HRESULT_FROM_WIN32(GetLastError());
19 | }
20 |
21 | int GET_X_LPARAM(LPARAM lp)
22 | {
23 | return cast(int)cast(short)LOWORD(lp);
24 | }
25 |
26 | int GET_Y_LPARAM(LPARAM lp)
27 | {
28 | return cast(int)cast(short)HIWORD(lp);
29 | }
30 |
31 | int MAKELPARAM(int lo, int hi)
32 | {
33 | return (lo & 0xffff) | (hi << 16);
34 | }
35 |
36 | COLORREF RGB(int r, int g, int b)
37 | {
38 | return cast(COLORREF)(cast(BYTE)r | ((cast(uint)cast(BYTE)g)<<8) | ((cast(uint)cast(BYTE)b)<<16));
39 | }
40 |
41 | public import sdk.win32.shellapi;
42 |
43 | const WM_SYSTIMER = 0x118;
44 |
45 | public import sdk.port.base;
46 |
47 | extern(Windows)
48 | {
49 | uint GetThreadLocale();
50 |
51 | UINT DragQueryFileW(HANDLE hDrop, UINT iFile, LPWSTR lpszFile, UINT cch);
52 | HINSTANCE ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);
53 | }
54 |
55 | // use instead of ImageList_LoadImage to avoid reduction to 16 color bitmaps
56 | HIMAGELIST LoadImageList(HINSTANCE hi, LPCSTR lpbmp, int cx, int cy)
57 | {
58 | auto imglist = ImageList_Create(cx, cy, ILC_MASK | ILC_COLOR24, cx * 10, cx * 10);
59 | if(!imglist)
60 | return null;
61 | auto img = LoadImageA(hi, lpbmp, IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
62 | if(!img)
63 | {
64 | ImageList_Destroy(imglist);
65 | return null;
66 | }
67 | ImageList_AddMasked(imglist, img, CLR_DEFAULT);
68 | DeleteObject(img);
69 | return imglist;
70 | }
71 |
--------------------------------------------------------------------------------
/visuald/workaround.d:
--------------------------------------------------------------------------------
1 | module workaround;
2 |
3 | import std.conv;
4 |
5 | ///////////////////////////////////////////////////////////////
6 | // fix bad compilation order, causing inner function to be generated
7 | // before outer functions (bugzilla 2962)
8 | // this must be *parsed* before other usage of the template
9 | static if(__traits(compiles,std.conv.parse!(real,string))){}
10 |
11 | //__gshared int[string] x;
12 |
13 | version(none) debug
14 | {
15 |
16 | // drag in some debug symbols from libraries (see bugzilla ????)
17 | extern extern(C)
18 | {
19 | __gshared int D3vdc4util8TextSpan6__initZ;
20 | __gshared int D3sdk4port4base4GUID6__initZ;
21 | __gshared int D3std4json9JSONValue6__initZ;
22 | }
23 | shared static this()
24 | {
25 | auto x1 = &D3vdc4util8TextSpan6__initZ;
26 | auto x2 = &D3sdk4port4base4GUID6__initZ;
27 | auto x3 = &D3std4json9JSONValue6__initZ;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------