VSIX Open a Comparison/Difference View Window - visual-studio-extensions

I am writing a Visual Studio Extension for Visual Studio 2022 where I just want to Open a Comparison Window just like when you click on a file in the Git Changes view.
I see various classes IWpfDifferenceViewerFactoryService sounds promising but have found zero examples on how to use this class, especially when called from a Command Extension.
Same goes for IDifferenceViewer & 2, & 3.
I also see that the VS.Document.OpenAsync class of the Community Toolkit uses the VsShellUtilities class which is another can of worms and doesn't seem to have any Differencing capabilities.
If anyone has any idea how to do this, please let me know. Sorry for the lack of code in my question, but I've googled the heck out of this to no avail.

not sure if this is exactly what you had in mind, but Mads Kristensen (PM on the Visual Studio team # Microsoft) has a sample "FileDiffer" extension for VS 2022:
https://github.com/madskristensen/FileDiffer/tree/master/src
The VS Command that does the diffing is here: https://github.com/madskristensen/FileDiffer/blob/master/src/Commands/DiffFilesCommand.cs

Related

Some of the JavaFX docs are missing (NetBeans 11)

Recently I've started to work with Maven JavaFX11 (openJFX11) and I noticed that there are many issues with javadoc in NetBeans. After some research I found that there is a bug with NetBeans that doesn't download the source+docs dependecies the right way (I mean it downloads it, but the next step to make it work is that you rename the source+docs files
issue & solution right here
But after I did that I noticed another docs issue and I have not found any similar topic on this so i dont know if it's just me or somebody have/had the same problem
When i type something like this:
private Label label;
label.[something...]
It only shows some of the docs.
It describes object Label the right way
After I type the dot, it only tells me about like 1/5 of the docs. Let me show you simple example.
And here is example of one that works
I looked into the javafx docs (.jar) and opened the Note.html and there ARE as the same things as in the docs they have on their websites, including all the methods, etc.
So... Dont you know, where the problem might be? I'm using the openJFX 11
It looks like you have encountered a known issue. See these NetBeans Bug Reports:
NETBEANS-1396 Maven: Downloaded javadoc / sources not attached to artifact with classifier.
NETBEANS-2197 Missing code completion and Javadocs in maven projects with classifier.
Also see these OpenJFX issues:
How to add javadoc in Netbeans #44
Attached Javadoc does not follow Maven convention #6
The fix is being implemented through a pull request for NetBeans 1396.
That fix is already included in NetBeans 11.3 which has a target release date of "January 15, 2020".

Avalonedit Show syntax error

when I develop a custom language IDE using avalonedit, I encountered a problem. I use regex to check the syntax, and it works as designed. However, I want to show the syntax error with wave text mark. I did search at google, yet the solution is either outdated or not feasible. Any ideas? Thanks ahead.
AvalonEdit does not have this functionality built-in. However it provides all the infrastructure needed to implement it yourself. In the SharpDevelop IDE we have an implementation that should suit your needs.
You'll need some of the code from the SharpDevelop repository (https://github.com/icsharpcode/SharpDevelop/):
TextMarkerService, TextMarker
and its related interfaces and enums.
To make it easier for you, I have created a small sample application:
https://github.com/siegfriedpammer/AvalonEditSamples/tree/master/TextMarkerSample
It uses the AvalonEdit 5 nuget package and contains the classes mentioned above, plus a WPF Window to test it.

Do any R IDEs support conditional breakpoints?

Which, if any, R IDEs (e.g. StatET, Revolution R, RStudio, ESS, NppToR, others) support conditional breakpoints?
This is available via bp in the debug package, or via an additional bit of code that invokes browser() based on a condition. However, it can be more efficient to be able to toggle a particular line # and quickly enter a conditional breakpoint for that particular line, without having additional code or console activities.
Note 1. I've searched a bit for these, and it seems that conditional breakpoints are not available in RStudio, and I think the same may be true for StatET. There appears to be support in ESS (see this page), though I'm not yet familiar with ess-tracebug and whether it's easy to use. It also seems that this works only for older versions of ESS; I'm not yet familiar with functionality for more recent versions.
Update 1. I'm selecting an answer (the only one - Andrie's). The question was answerable regarding whether any IDE supports conditional breakpoints, and, fortunately, Andrie has demonstrated that there exists a solution. I remain interested in any other IDEs that support this, though Eclipse is good enough for now. (At the moment, I prefer Rstudio, but this is already in their feature request list.) If anyone has expertise in ESS and can demonstrate that functionality, I'm sure it will benefit others who happen upon this question.
Yes, this is possible with Eclipse + StatET 2.0 in R 2.14-1.
Eclipse supports conditional debugging, and StatET 2.0 supports visual debugging (as long as you have a fairly recent version of R.)
Assuming you know your way around Eclipse, do the following:
Start a debugging session in Eclipse (i.e. invoke a Debug configuration, not a Run configuration)
Set a breakpoint in your code
Open a Debug perspective
Run your code
With the debug perspective open, you will have a pane that contains tabs for Variables / Breakpoints. In the breakpoints tab, select your breakpoint, then click the Conditional / Expression tickbox and enter your condition.
In searching for this answer, I found the following pages helpful:
Download and install StatET
How to start a debugging session in StatET
How to set a conditional breakpoint in Eclipse
There is a little trick to set a conditional breakpoint in rstudio:
for(i in 1:10){
if(i==5){
print("set the breakpoint at this line by shift+f9")
}
i*i
}
The only drawback is you need to add some extra code
The preview release of RStudio v0.98 has this feature:
http://www.rstudio.com/ide/docs/debugging/overview
Only drawback is your function should be in the same file with your main code if you want to set a breakpoint in your function.

How to use FTS in SQLite with Monotouch for iOS

I'm looking to build an iOS app using Monotouch that has a rather large sqlite db full of text. I need to provide fast searching over this text.
My best solution right now is the FTS module (preferably version 4). I have read that the default instance of sqlite on iOS does not support FTS. If this is true what is the recommended way to build a custom instance of sqlite with Monotouch? Or can this be done at all?
I found this site describing how to accomplish this with xcode, but it is not clear how I would accomplish with Monotouch.
http://longweekendmobile.com/2010/06/16/sqlite-full-text-search-for-iphone-ipadyour-own-sqlite-for-iphone-and-ipad/
Any help is much appreciated!
As I mentioned in my comment above I got this working and since Stack Overflow has really helped me out I wanted to contribute a little to give back to the community.
Disclaimer
This is coming from a .NET developer who is a N00B when it comes to iOS/MacOS/XCode/Monotouch.
Although I tested this out on the iPad simulator I have yet to test it out on an actual device.
End disclaimer
This is a quick how-to compile your own version of SQLite and include it in your Monotouch project with the goal of supporting Full text search.
Step 1:
Download the SQLite amalgamation file.
This includes all of SQLite in one file.
http://www.sqlite.org/download.html
Step 2: Compile the SQLite source in Xcode for iOS.
There is a good walkthrough on how to do this here:
http://pp.hillrippers.ch/blog/2009/08/08/Static+SQLite+Library+with+Unicode+Support+for+the+iPhone/
I followed steps 1-5, skipped #6 since we're not adding additional headers.
Instead of using the compile flags used in the walk through I used:
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS4
There may be others you want to add as well.
These compile flags are added in XCode, to the "Build" tab of the project under "Preprocessor Macros".
Once you've compiled this you should have "mylibrary.a".
Step 3: Include this file in your MonoDevelop project
Add mylibrary.a into MonoDevelop as any other file, right click it and make sure the build action is 'Nothing'.
In your project options select "iPhone Build". You need to add additional mtouch arguments. Add the following
-gcc_flags "-L${ProjectDir} -lmylibrary -force_load ${ProjectDir}/mylibrary.a"
Step 4: Build a c# wrapper
You could probably find a good wrapper to include at this point but I just quickly rolled my own.
For a good tutorial on writing an SQLite wrapper in C# check this page out:
http://www.switchonthecode.com/tutorials/csharp-tutorial-writing-a-dotnet-wrapper-for-sqlite
Because your library is a part of the project you don't need to reference the library by name but instead use the "__Internal" keyword. *NOTE THERE ARE TWO UNDERSCORES IN "__INTERNAL" * (Don't ask me how much time I wasted before I realized that)
Here's a sample of one of mine
[DllImport ("__Internal", EntryPoint="sqlite3_open")]
static extern int sqlite3_open_v2(string filename, out IntPtr db);
There's obviously a lot more to putting together a wrapper, but there's lots of info out there on how to do that. One gotcha is to properly marshal the strings you get returned from SQLite. (see http://blog.gebhardtcomputing.com/2007/11/marshal-utf8-strings-in-net.html for more info on Marshaling)
This was intended to be a quick walkthrough on getting a native library compiled in into MonoDevelop/monotouch, and I hope it helps someone.
You would have to do the same thing, build your own libsqlite3.a, and mangle all the public exports so it doesn't conflict with the libsqlite loaded by the system, and then you would need to modify whatever library you want to bind to sqlite to [DllImport ("__Internal")] instead of libsqlite.

Tools to organize Dataset designer?

Does anybody know of good tools/plugins to organize the dataset designer in Visual Studio 2008? Right now it's a big jumble of TableAdapters without relationship views - it would be very cool if there was a tool available that could organize it, kinda like how it's done in SQL Server Management studio's 'Diagram' pane.
Cheers,
WT
I'm not sure if you are aware of it, but in Visual Studio when you add a new DataSet you can use the Configure option of the TableAdapter. Using that you can see the Query designer which helps with what you want.
If that's not it, I remember using Altova for something like that. This might help you: http://www.altova.com/
Or this: http://www.stylusstudio.com/

Resources