本文整理汇总了C#中IWpfTextView.GetFileName方法的典型用法代码示例。如果您正苦于以下问题:C# IWpfTextView.GetFileName方法的具体用法?C# IWpfTextView.GetFileName怎么用?C# IWpfTextView.GetFileName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IWpfTextView
的用法示例。
在下文中一共展示了IWpfTextView.GetFileName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TextViewTracker
private TextViewTracker(IWpfTextView textView, ProjectTracker projectTracker, VSTextProperties vsTextProperties)
: base() {
Contract.Requires(textView != null);
Contract.Requires(projectTracker != null);
VSServiceProvider.Current.ExtensionFailed += OnFailed;
this.TextView = textView;
if (textView.TextBuffer != null)
{
textView.TextBuffer.Changed += OnTextBufferChanged;
}
TextView.Closed += OnClosed;
this._projectTracker = projectTracker;
projectTracker.BuildDone += OnBuildDone;
// VSServiceProvider.Current.NewSourceFile += OnNewSourceFile;
VSServiceProvider.Current.NewCompilation += OnNewComilation;
//Timer
_textBufferChangedTimer = new System.Timers.Timer();
_textBufferChangedTimer.AutoReset = false;
_textBufferChangedTimer.Elapsed += OnTextViewSettled;
_textBufferChangedTimer.Interval = DelayOnTextViewOpened; //Wait two seconds before attempting to fetch any syntactic/semantic information. This gives VS a chance to properly initialize everything.
_textBufferChangedTimer.Start();
//Set the text properties
VSTextProperties = vsTextProperties;
VSServiceProvider.Current.QueueWorkItem((() => { VSTextProperties.LineHeight = TextView.LineHeight; }));
//Set the file name
var fn = TextView.GetFileName();
if (fn == null) { fn = "dummyFileName"; }
FileName = new FileName(fn);
}
示例2: TextViewCreated
/// <summary>
/// When a new text view is created, hook up the various "trackers" (<see cref="TextViewTracker"/>, <see cref="InheritanceTracker"/>, <see cref="QuickInfoTracker"/>).
/// </summary>
/// <param name="textView"></param>
public void TextViewCreated(IWpfTextView textView) {
Contract.Assume(textView != null);
if (VSServiceProvider.Current == null || VSServiceProvider.Current.ExtensionHasFailed) {
//If the VSServiceProvider is not initialize, we can't do anything.
return;
}
VSServiceProvider.Current.Logger.PublicEntry(() => {
#region Check if textView is valid
var fileName = textView.GetFileName();
if (fileName == null) {
VSServiceProvider.Current.Logger.WriteToLog("Couldn't retrieve file name for current view.");
return;
}
if (!File.Exists(fileName)) {
VSServiceProvider.Current.Logger.WriteToLog("Couldn't find file for current view.");
return;
}
#endregion
VSServiceProvider.Current.Logger.WriteToLog("Text view found: " + fileName);
#region Check if textView is a CSharp file
var IsCSharpFile = Path.GetExtension(fileName) == ".cs";
#endregion
#region Get text view properties
var vsTextProperties = VSTextPropertiesProvider.GetVSTextProperties(textView);
#endregion
var vsProject = VSServiceProvider.Current.GetProjectForFile(fileName);//May be null!
ProjectTracker projectTracker = null;
if (vsProject != null) {
projectTracker = ProjectTracker.GetOrCreateProjectTracker(vsProject);
if (projectTracker != null)
textView.Properties.AddProperty(typeof(ProjectTracker), projectTracker);
else
VSServiceProvider.Current.Logger.WriteToLog("Warning: Couldn't create a 'ProjectTracker', we won't be able to show inheritance contract information for this text view. Close and reopen the text view to try again!");
}
#region Check if textView is an editable code file
var IsEditableCodeFile = /*IsCSharpFile &&*/textView.Roles.Contains("editable") && projectTracker != null; //TODO: We need a stronger check to see if it is a editable code file
#endregion
if (IsEditableCodeFile) {
textView.GotAggregateFocus += NewFocus;
var textViewTracker = TextViewTracker.GetOrCreateTextViewTracker(textView, projectTracker, vsTextProperties);
//if (VSServiceProvider.Current.VSOptionsPage != null && (VSServiceProvider.Current.VSOptionsPage.InheritanceOnMethods || VSServiceProvider.Current.VSOptionsPage.InheritanceOnProperties)) {
// //var inheritanceAdornmentManager = AdornmentManager.GetOrCreateAdornmentManager(textView, "InheritanceAdornments", outliningManager, VSServiceProvider.Current.Logger);
// //var inheritanceTracker = InheritanceTracker.GetOrCreateAdornmentTracker(textViewTracker);
//}
//var quickInfoTracker = QuickInfoTracker.GetOrCreateQuickInfoTracker(textViewTracker); //Disabled for now, unfinished
}
#region Check if textView is a metadata file
var IsMetadataFile = !IsEditableCodeFile && fileName.Contains('$'); //TODO: We need a strong check to see if it is a metadata file
#endregion
if (IsMetadataFile) {
if (lastFocus == null || !lastFocus.Properties.ContainsProperty(typeof(ProjectTracker))) {
VSServiceProvider.Current.Logger.WriteToLog("Couldn't find project for metadata file.");
} else {
var outliningManager = OutliningManagerService.GetOutliningManager(textView);
if (outliningManager == null)
{
VSServiceProvider.Current.Logger.WriteToLog("Couldn't get outlining manager for current view.");
return;
}
projectTracker = lastFocus.Properties.GetProperty<ProjectTracker>(typeof(ProjectTracker));
textView.Properties.AddProperty(typeof(ProjectTracker), projectTracker);
textView.GotAggregateFocus += NewFocus;
if (VSServiceProvider.Current.VSOptionsPage != null && VSServiceProvider.Current.VSOptionsPage.Metadata) {
var metadataAdornmentManager = AdornmentManager.GetOrCreateAdornmentManager(textView, "MetadataAdornments", outliningManager, VSServiceProvider.Current.Logger);
var metadataTracker = MetadataTracker.GetOrCreateMetadataTracker(textView, projectTracker, vsTextProperties);
}
}
}
}, "TextViewCreated");
}