tinaschrepfer on tinali
Remove use of "any" content typ… (compare)
tinaschrepfer on tinali
Merge pull request #169 from Mi… Add sample support for "any" co… (compare)
tinaschrepfer on master
Update VSSDK package and remove… Merge pull request #169 from Mi… (compare)
ElementHostcontrol in WinForms. I already had created the whole property page with WinForms and it worked fine. However, the issue which caused me to rethink the UI was high DPI screens e.g. a 1080p screen with 125% Scaling on Windows 10. Traditional WinForms controls do not scale well and the controls look for overlapped. Thankfully, I was able to resolve it by creating a WPF based user control and use it via the
ElementHostin WinForms. It scales correctly after that, even on a scaling of 300% on a 2160p screen.
Another info for anyone providing extension for VS2017; once you have
AllUsers="true" in your vsixmanifest, vsixinstaller gets to the point where it wants to install (not repair, not update)
Microsoft.NET.Core.Sdk.2.1 which fails (because the user has usually a slightly different version of this package already installed - seems more like a version mismatch in Visual Studio 2017 catalog itself). Your extension gets installed, but VSIXInstaller reports a failure.
This can be replicated with @madskristensen 's Extensibility Tools (https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ExtensibilityTools) .
Once the user runs Visual Studio Installer and repairs their installation, things will work well (but just once).
.csfiles in solution explorer based on a button provided by my plugin.
The comments suggest we should use a different piece of code to get IVsOperationProgressStatusService based on VS version: V16.1 or "Post Visual Studio 2019 Update 2".
Does this mean that one has to create two VSIX packages? Or is there a way at runtime to detect the VS version?
For some VS versions, Workspace.CurrentSolution will return an incomplete code model. (Partial Load Mode (PLM))
This is a new feature to enable faster loading of solutions.
In such versions, if we want to wait for the solution to "really load", we have to use IVsOperationProgressStatusService.
The API to get a IVsOperationProgressStatusService differs between VS 16.1 and "Post Visual Studio 2019 Update 2".
If I am to create a VS extension that targets VS 2017 and VS 2019 (multiple versions), how can I have a single VSIX for all versions?
If VS version > some version, I need to use IVsOperationProgressStatusService. And to get IVsOperationProgressStatusService I need to use different codes based on the version.
Or should I have three VSIX projects:
I'm working on an extension that provides a custom debug engine for Visual Studio -- https://github.com/googlestadia/vsi-lldb. The debug engine is similar to MIEngine (https://github.com/microsoft/MIEngine). The underlying debugger is LLDB and the extension provides all the necessary integrations (attach, stepping, natvis and expression evaluation, etc).
My question is about implementing custom code-completion in the Immediate Window.
The expressions in the Immediate Window are handled by
IDebugExpressionContext2  and
IDebugExpression2. This works fine, when the user enters the expressions and hits Enter
IDebugExpressionContext2::ParseText is invoked,
IDebugExpression2 object is created and the expression is eventually evaluated .
Now I want to implement basic code-completion for the expressions in the Immediate Window. For example, to show a list of members when the user types
foo-> and such. I can easily do this using my expression evaluation engine (https://github.com/google/lldb-eval), but I can't figure out how to implement it in Visual Studio.
I have found an interface
IVsImmediateStatementCompletion2 . Looking at the name, this seems like exactly what I want :) However I'm not sure how what is the proper way to impement this interface. The documentation says this interface should be implemented on the same object that implements
IVsLanguageInfo -- this matches what I see in Roslyn .
My extension currently doesn't provide a language service implementation, only the debug engine. I've tried adding a dummy implementation like
class MyLanguageService : IVsLanguageInfo, IVsImmediateStatementCompletion2 and registering it via
[ProvideService]. After I registered it for ".cpp" files, I can see that methods for
IVsLanguageInfo are being called (namely
IVsImmediateStatementCompletion2 is never triggered.
So here's the big question, how do I implement a custom completion for the Immediate Window in my DebugEngine? :) Thanks!
EnvDTE.ProjectItemin such a way that the tag value is not exposed, but private to my plugin. I am trying to classify some C# class files in SolutionExplorer, such that I can set a tag "MyFileTypeTag", with value: "GoodFile"/"BadFile"/etc..., then later get the same tag's value when user selects that
@werat Regarding the Uninstall Button in VS Extension and updates:
@RobertvanderHulst Does the "uninstall" flow work properly for you with this setup? I'm also deploying my extension by directly copying the files to the "Extensions" dir, but I also update the configs in "ProgramData\VisualStudio\Packages..." (writing path from memory, might not be exactly it). Without it, the "uninstall" button from Visual Studio (on vsixinstaller) doesn't work -- I get an error and the extension stays. I also noticed that this happens only if deploying the extension to the VS installation (i.e. "admin" mode). When deploying to "AppData..." (i.e. "user" extension), the uninstall works fine.
When We deploy the Extension directly to Common7\Ide\Extensions\OurProduct Location the Uninstall button is disabled by default. Can I kindly know What configs did you add to"ProgramData\VisualStudio\Packages..." to make Uninstall button work?