Moving on

It’s been an interesting journey, these last 3 ½ years. I was hired at Microsoft, after an internship the summer before my senior year, to work on a long-lead effort creating new IDE components and developer tools. On my first day back, my boss from the internship sat me down and broke the news that…

4

Code Snippet: Ensuring a file is in a project

Every couple of weeks, I’ll get a question about getting an arbitrary file on disk into a project in VS without asking VS to open in a document window directly. It seems to be pretty hard to find information for (when I needed to do it, it took a few email threads with various other…

0

Editor fundamentals: Text-Relative Adornments

Tagging along with the last editor fundamentals post on the pull/event model, today’s article is the application of that model to handling text-relative adornments. The adornment “manager” Within the editor, we use a fairly common pattern for structuring adornments. There are essentially two components: First, a view creation listener (IWpfTextViewCreationListener), keyed off a ContentType and…

0

Spell Checker Update – Perf bug on large C# files

I pushed an update (v2.22) to the Spell Checker extension just a little bit ago which fixes a pretty major and annoying performance issue with large C# files. I say “fixes”, but it’s really just a big work around, courtesy Michael (who will post an entry on his blog any day now. It’s interesting enough…

0

Q&A: ITextSnapshot.GetText()

(This is part of the Q&A Series) This question comes from Cameron Peters, from the previous Q&A on read-only regions: How expensive, relatively is it to call Snapshot.GetText? I have a classifier/tagger that works well with small files (under 100K), but which bogs down as the file goes beyond that, and I’m wondering if my…

0

Editor fundamentals: Push vs. Pull

(This is a new series I plan to write in occasionally, where I’ll talk more generally about some of the design fundamentals of the editor and best practices for extensions) One of the things I learned early on, probably incorrectly, is that you can look at how components communicate and basically split the common patterns…

3

A quick update

Sorry for (another) long hiatus, again. I’ve been pretty busy, the last few weeks especially, working on fixing bugs and some interesting internal projects that may make their way to the public eye soon-ish (like in the next few months soon-ish, which probably isn’t that soon). In the interim, I wanted to note that I…

0

Q&A: Read-only regions

This question was asked recently on the (internal) editor discussion alias: Is it at all possible to make parts of the text buffer read-only? Could I, for example, mark certain spans as not modifiable, so that the user wouldn’t be able to change their contents? The short answer is yes; in fact, marking regions of…

8

Extending extensions

If you’d ever taken a peek at the code for the Spell Checker extension before a couple weeks ago, you may have noticed that there were some definition interfaces intermingled with the various implementation classes. One such example is the NaturalTextTag, which the spell checking logic aggregates to know what parts of a text buffer…

2

Long time no bloggy.

Been a long time since I’ve blogged, sorry about that. I won’t get too deep into things that have happened since my last post, but here’s the short list: Visual Studio 2010 shipped Yeah, the obvious one. We (individual developers) actually aren’t that involved for the last month or so, but there were a few…

0