tomasr / viasfora Goto Github PK
View Code? Open in Web Editor NEWA Visual Studio Extension containing miscellaneous improvements to the editor.
License: Other
A Visual Studio Extension containing miscellaneous improvements to the editor.
License: Other
When exploring the contents of text buffers using the developer margin, all buffers are opened as text files without any syntax highlighting.
Save the temporary file using the right extension (according to content type) so that it has syntax highlighting.
When doing a Ctrl+F and typing the search term, the column highlight moves as if the caret was on the view.
Thanks for bringing rainbow braces to vb.net. I disabled keyword classifier and Enabled only Rainbow braces. In vb.net, the rainbow braces working fine but at the same time, its highlighting odd single characters randomly. it also highlighting random single characters when I comment the code block.
When the rainbow parenthesis option is enabled, this slows down the editor a lot, based on the size of the file being edited. Additionally, if ReSharper is enabled, this feature interacts negatively with ReSharper, slowing down everything exponentially.
Some rough numbers on what I mean. This is with a large file, ex. 50000 LOC. But even with a medium-sized file, ex. 2000 LOC you'll notice this. My machine is a Core i7-2600 with 3.4GHz running Windows 7, 64bit, VS2010, ReSharper 8.0.1.
If I type by holding down a key, the repeat rate is slowed down to less than 10 characters per second. If I then press Undo (Ctrl+Z), the main thread of VS is stuck at 100% for several minutes (!!!).
If I disable ReSharper, then the numbers are much better, about 20 cps and maybe 3 secs pause.
With ReSharper and rainbow parenthesis disabled, I have 30cps and instantaneous Undo.
With rainbow parenthesis disabled, ReSharper enabled, I have 30cps and maybe a half-second pause on Undo.
I did a quick debug of the VS process. The time is spent in Text/RainbowTagger.cs, line 66. Apparently this is called over and over again.
Add F# support to:
TODO: Review what possible keywords to classify
Hi,
Since updating to v1.3 I'm getting the following error when trying to edit an MVC view (as per the activitylog.xml file):
System.NullReferenceException: Object reference not set to an instance of an object. at Winterdom.Viasfora.Text.RainbowTagger.ContentTypeChanged(Object sender, ContentTypeChangedEventArgs e) in C:\tomasr\viasfora\Text\RainbowTagger.cs:line 169 at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)
The view I'm currently editing which generated the exception above is incredibly basic as per the screenshot attached.
Let me know if you require any additional information.
Rob
For example, in the following code:
#include <abc\def.h>
"\d" isn't an escape sequence.
Also, the raw string literals are not handled correctly, like this:
R"(abc\def)"
Getting this pretty often (version 1.2 installed):
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at Winterdom.Viasfora.Text.BraceCache.FindIndexOfFirstBraceInSpan(SnapshotSpan wantedSpan) in C:\tomasr\viasfora\Text\BraceCache.cs:line 177
at Winterdom.Viasfora.Text.BraceCache.Invalidate(SnapshotPoint startPoint) in C:\tomasr\viasfora\Text\BraceCache.cs:line 43
at Winterdom.Viasfora.Text.RainbowClassifier.UpdateBraceList(ITextSnapshot snapshot, INormalizedTextChangeCollection changes) in C:\tomasr\viasfora\Text\RainbowClassifier.cs:line 89
at Winterdom.Viasfora.Text.RainbowClassifier.BufferChanged(Object sender, TextContentChangedEventArgs e) in C:\tomasr\viasfora\Text\RainbowClassifier.cs:line 155
at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)
Provide the option to augment the built-in Visual Studio text completion mechanism with one that is based off plain-text analysis of the current document, instead of the one provided by the language provider.
This could be used to provide completion on plain-text documents, as well as provide completion in regular code files in places where it does not usually work (like inside strings)
Support the noet abbreviation for the noexpandtabs directive
The following code will cause the remainder of the file to not have braces highlighted:
if ( text[start] == '\\' ) {
When the caret goes over a collapsed region, the current column highlighting will get stuck sometimes using the width of the collapsed region display and not revert back to single-char width.
Regression in version 1.7.
Only first three digits of an escaped Unicode character are highlighted (e.g. "\u2013" is shown, instead of "\u2013").
Add an option that will cause all outlining on a file to expand when it is opened in an editor.
Similar to the Current Line Highlight feature, but for the column the caret is currently located.
When the plain-text completion is triggered, if the current content does not have any straight matches, the closest match might be committed, even if it is not the right fit.
I.e. say you have typed 'hell' and are about to press 'o' and the closest match is 'heaven', then that your hell will be replaced with heaven.
This does not happen always; have not found a clear repro yet.
When editing a razor document, sometimes braces on C# expressions turn blank randomly after a change, even though the document is well formed.
The View -> Presentation Mode command is not working
This would be the opposite: Reduce the default zoom used by default on views
When editing documents (particularly a new one) the column highlight will not necessarily update as the caret moves when typing/changing the document (but moves correctly when the arrow keys are used).
Plain-text completion can take over the Complete Word command in many cases. Avoid doing it if possible.
Rainbow brace parsing is breaking when it encounters the use of "" to put a double quote on a C# verbatim string.
T-SQL strings are always multi-line, which is not being parsed that way. Also, add [] to the possible braces.
Hi,
I'm getting the following error when removing the contents of an HTML tag:
<entry>
<record>1213</record>
<time>2014/02/05 12:52:32.164</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.InvalidOperationException: Nullable object must have a value.
 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
 at Winterdom.Viasfora.Xml.XmlTagger.<DoXAMLorHTML>d__d.MoveNext() in C:\tomasr\viasfora\Viasfora\Xml\XmlTagger.cs:line 112
 at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator`1.<GetTagsForBuffer>d__5.MoveNext()</description>
</entry>
I've attached an animated gif which shows what I was doing to cause the error message.
Rob
Add rainbow braces support to the new JSON editor coming in VS2013 update 2: http://blogs.msdn.com/b/somasegar/archive/2014/02/25/visual-studio-2013-update-2-ctp2.aspx
Hi,
Since updating to version 1.5 I'm seeing the following error in the activitylog file when editing an aspx web forms page in VS 2012:
<entry>
<record>1017</record>
<time>2014/02/04 11:01:40.399</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.NotImplementedException: The method or operation is not implemented.
 at Microsoft.VisualStudio.Editor.Implementation.SecondaryVsTextBufferAdapter.Microsoft.VisualStudio.Shell.Interop.IPersistFileFormat.GetCurFile(String& ppszFilename, UInt32& pnFormatIndex)
 at Winterdom.Viasfora.TextEditor.GetFileName(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\TextEditor.cs:line 51
 at Winterdom.Viasfora.Text.UserOutliningTagger.LoadRegions(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTagger.cs:line 94
 at Winterdom.Viasfora.Text.UserOutliningTagger..ctor(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTagger.cs:line 19
 at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.<>c__DisplayClass1.<Get>b__0() in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 25
 at Microsoft.VisualStudio.Utilities.PropertyCollection.GetOrCreateSingletonProperty[T](Object key, Func`1 creator)
 at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.Get(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 24
 at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.CreateTagger[T](ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 20
 at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator`1.GatherTaggers(ITextBuffer textBuffer)</description>
</entry>
Please let me know if you require more information.
Rob
If you have code like this:
if ( str == "somestring" ) {
And you delete one of the quotes, the braces after the quote do not get refreshed.
With the column highlight enabled, if you scroll using the mouse scroll wheel, it will be displaced and scrolled away with the view.
Support Vim-style modelines:
http://vim.wikia.com/wiki/Modeline_magic
Implement a text editor margin that is useful for developers writing extensions for the text editor. Initial features include:
Add support for all features to js files used by Node.js Tools for VS: https://nodejstools.codeplex.com/
Add support for Python documents from the Python Tools for Visual Studio: http://pytools.codeplex.com/
See http://en.wikipedia.org/wiki/Python_syntax_and_semantics
Add TypeScript support to:
Rainbow Parentheses
Keyword Classifier
TODO: Review what possible keywords to classify
(Based on your existing F# enhancement)
I guess this would build upon the Javascript classifier?
Need to have a way to separate regular structural outlining regions, from user outlining regions created through Viasfora.
Initial idea is to put a mark on the VS Marker Margin. We could also click on the mark to remove the region.
In version 1.3, rainbow classifier is not ignoring braces that appear after the first line in a multi-line comment.
Implement a new feature called "Presentation Mode". When enabled, all text windows automatically switch to a predefined zoom level (example: 150%).
Should be enabled/disabled using an option in the View menu.
Allow the user to define arbitrary collapsible regions based on a selection the selection.
Initially, this might not be persisted after closing the file, but this should be added later.
On the initial implementation of modelines, we only parse the first line of the document. However, this is not acceptable for some formats, such as XML files, that require that the very first line of the document contains specific data (such as an xml directive, or a hash-bang command).
Add rainbow braces support for the PowerShell editor in VS2013 update 2.
The content type for these is PowerShell.v3
Currently, modelines are only supported on file types for which we have specific parsers to handle the comment syntax. Most formats could be handled with a single parser that recognizes the most common comment styles.
Viasfora adds a bunch of new items to the fonts & colors part of the VS options dialog. However, these are not that easy to find, since the list is sorted alphabetically and it isn't clear which ones are added by Viasfora.
A simple solution would be adding a prefix (as is done by other extensions), ex. Viasfora_RainbowBrace_1, etc.
Viasfora appears to be responsible for this unexplained Buffer Graph region at the bottom of code editors:
UPDATE: ah it appears related to developer features. I'm sure most user of Viasfora are not extension developers so not sure this should be on by default.
I am getting this error in visual studio 2012. An exception has been encountered. This may be caused by an extension. I checked the log file and found this entry.
System.NotImplementedException: The method or operation is not implemented. at Microsoft.VisualStudio.Editor.Implementation.SecondaryVsTextBufferAdapter.Microsoft.VisualStudio.Shell.Interop.IPersistFileFormat.GetCurFile(String& ppszFilename, UInt32& pnFormatIndex) at Winterdom.Viasfora.TextEditor.GetFileName(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\TextEditor.cs:line 51 at Winterdom.Viasfora.Text.UserOutliningTagger.LoadRegions(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTagger.cs:line 94 at Winterdom.Viasfora.Text.UserOutliningTagger..ctor(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTagger.cs:line 19 at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.<>c__DisplayClass1.<Get>b__0() in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 25 at Microsoft.VisualStudio.Utilities.PropertyCollection.GetOrCreateSingletonProperty[T](Object key, Func`1 creator) at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.Get(ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 24 at Winterdom.Viasfora.Text.UserOutliningTaggerProvider.CreateTagger[T](ITextBuffer buffer) in C:\tomasr\viasfora\Viasfora\Text\UserOutliningTaggerProvider.cs:line 20 at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator`1.GatherTaggers(ITextBuffer textBuffer)Provide a way to force the use of italics fonts on certain classifier types automatically, such as comments.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.