VisualD's Intellisense not workign with gtk

Rainer Schuetze via Digitalmars-d-ide digitalmars-d-ide at puremagic.com
Thu Aug 10 23:36:51 PDT 2017



On 10.08.2017 15:47, Johnson wrote:
> On Thursday, 10 August 2017 at 07:05:26 UTC, Rainer Schuetze wrote:
>>
>>
>> On 06.08.2017 21:27, Rainer Schuetze wrote:
>>>
>>>> ------------------------------Part 2----------------------------
>>>> I just tried downloading the source code and get >
>>>> "C:\Program Files (x86)\Microsoft Visual 
>>>> Studio\2017\Enterprise\\Common7\Tools\vsvars32.bat"
>>>>
>>>> when building build.
>>>
>>> I suspect Visual D doesn't build out of the box with VS2017. I still 
>>> use VS2013 to avoid dependencies in the resulting binaries on newer 
>>> versions.
>>>
>>
>> I have updated the build scripts and the C to D conversion to also 
>> work with VS2017 and Windows SDK 10.0.15063.0.
> 
> Awesome! I think I got it to build!
> 
> I had a few issues. I still had to fix a few hard coded paths I listed 
> above(I think it was mainly the tools/build.bat:
> 
> c:\d\dmd2\windows\bin\dmd.exe -g tlb2idl.d oleaut32.lib uuid.lib snn.lib 
> kernel32.lib
> if errorlevel 1 goto xit
> "C:\Program Files (x86)\VisualD\cv2pdb\cv2pdb.exe" -D1 tlb2idl.exe 
> tlb2idl_pdb.exe
> :xit
> 
> which had hard coded paths for dmd2 and cv2pdb.

Sorry, this is an outdated build batch. tlb2idl is also built by the 
build-project in the solution. I'll better delete this batch.

> 
> A new issue was with
> 
> Must fix up vsct or add proper vssdk path to visuald.visualdproj:
> 
> C:\Program Files (x86)\Microsoft Visual 
> Studio\2017\Enterprise\VSSDK\VisualStudioIntegration\Tools\Bin\vsct.exe
[...]
> set VSSDKInstall=%VSSDK140Install%
> if "%VSSDKInstall%" == "" set VSSDKInstall=%VSSDK120Install%
> if "%VSSDKInstall%" == "" set VSSDKInstall=%VSSDK110Install%
> if "%VSSDKInstall%" == "" set VSSDKInstall=%VSSDK100Install%
> if "%VSSDKInstall%" == "" set VSSDKInstall=%VSSDK90Install%
> if "%VSSDKInstall%" == "" set VSSDKInstall=C:\l\vssdk
> set VSCT=%VSSDKInstall%\VisualStudioIntegration\Tools\Bin\VSCT.exe
>
> So, I guess VSSDKx0Install isn't set on my system because it was always 
> looking for vsct in C:\l\vssdk.
> 
> Fix that and everything built!

This is missing the check for VSSDK150Install which is set by the 
vcvars32.bat of VS2017. I've added that.

> 
> Now the question is, what do I do with this? Is there any automated way 
> to update VisualD after a build or someway to simultaneously debug 
> visualD when something happens in another project?

I usually debug Visual D as described at 
http://rainers.github.io/visuald/visuald/BuildFromSource.html under 
"Deployment", but that doesn't work for VS2017 anymore due to the 
private registry of VS. AFAICT the "official" way is to have a package 
definition in a user extension folder, but that never worked for me (or 
I haven't tried enough because the other way worked, too).

If you replace the standard installed DLL with a debug version, VS can 
get quite slow. This is mainly because the debug version writes a 
log-file visuald.log into the folder where you started devenv from.

You can also attach a debugger to a running devenv process. If you are 
using a release build of visuald with optimizations, debug information 
can be a lot more confusing than without, though.

> Basically, how to make it all seamless debug app/fix visualD cycle? Or 
> do you just manually do all the work? I figure copying visualD over to 
> the install dir requires stopping VS since visualD.dll and others will 
> probably be in use. It would be nice, say, to be able to break in to 
> visualD's source when debugging to to get at specific parts of visual D 
> like how it displays watches so I can more quickly fix things rather 
> than having to learn how visual D is put together before I actually 
> start investigating issues or enhancements.

I guess you might have noticed, but to make sure you don't get lost in 
the dependencies:

- the semantic engine is a local COM server written in C#: 
https://github.com/rainers/D_Parser/tree/visuald

I usually debug this by starting DParserCOMServer.exe from within the 
solution, then kill all other running instances. When you edit code in 
Visual D, it will reconnect to the debug instance.

- the debug engine is written in C++: https://github.com/rainers/mago

Debugging the Concord extension (MagoNatCC built in configuration "Debug 
StaticDE") is easiest: just copy the DLL bin\Win32\Debug\MagoNatCC.dll 
to <VSInstall>\Common7\Packages\Debugger, start debugging in another 
devenv process and attach the debugger to this other process.

- CodeView to PDB conversion for builds with -m32 is done by cv2pdb: 
https://github.com/rainers/cv2pdb

> 
> Thanks again! Maybe I can contribute a little to Visual D in the future ;)

Looking forward to your pull requests!


> 
> I saw all your other replies, thanks! I got them. I might reply to a few 
> later if I get some time.
> 
> 
> I'll spend a little time trying to figure out what's going on and how 
> visual D is setup and where the main bulk of the code for visual studio 
> exists and hopefully it will make enough sense to get somewhere.
> 
> Thanks!


More information about the Digitalmars-d-ide mailing list