Skip to content

Commit

Permalink
Remove Encouragement from Immediate Window
Browse files Browse the repository at this point in the history
Encouragement was using the presence of an ITextDocument as the
predicate for whether or not a given ITextView is eligible for
encouragement tips  Having an ITextDocument means a given ITextView is
backed by a physical file and saving such an item should be encouraged.

The problem is windows like the 'Immediate Window' are backed by
physical files (esp with Roslyn).  These files are implementation
details though and saving them has no benefit to the user.  In these
cases the save operation isn't even directly surfaced to the user.  It
happens as a consequence of a non-save like action (in the case of the
'Immediate Window', it happens on every key stroke).  This causes
Encouragement to be displayed at unexpected times

This change fixes this problem by changing the predicate slightly.  We
now check for ITextDocument (has ITextView has a physical backing file)
and the Document role (this ITextView is being displayed as a document).
  • Loading branch information
jaredpar committed Jul 15, 2014
1 parent c45e6e1 commit a339d3c
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions EncouragePackage/EncourageIntellisenseControllerProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@ public IIntellisenseController TryCreateIntellisenseController(ITextView textVie
return null;
}

// In general having an ITextDocument is sufficient to determine if a given ITextView is
// back by an actual document. There are some windows though, like the Immediate Window,
// which aren't documents that do still have a backing temporary file. These files are
// uninteresting to Encourage because they are temporary files that exist as an
// implementation detail
//
// The easiest way to filter for real documents is to check for the Document role
if (!textView.Roles.Contains(PredefinedTextViewRoles.Document))
{
return null;
}

return new EncourageIntellisenseController(textView, textDocument, this);
}
}
Expand Down

0 comments on commit a339d3c

Please sign in to comment.