public void ParseModeline(int numLine) { ITextBuffer buffer = this.theView.TextBuffer; var snapshot = buffer.CurrentSnapshot; if (snapshot.LineCount <= numLine) { return; } ILanguage language = langFactory.TryCreateLanguage(snapshot); if (language == null) { return; } var firstLine = snapshot.GetLineFromLineNumber(numLine); ITextChars tc = new LineChars(firstLine); String commentText = language.NewFirstLineCommentParser().Parse(tc); if (String.IsNullOrEmpty(commentText)) { return; } VsfPackage.LogInfo("Found possible modeline: {0}", commentText); var modelineParser = new ModeLineParser(); var options = modelineParser.Parse(commentText); ApplyModelines(options); }
public static ILanguage TryCreateLanguage(this ILanguageFactory factory, IContentType contentType) { Func <String, bool> matcher = (String lang) => contentType.IsOfType(lang); return(factory.TryCreateLanguage(matcher)); }
public static ILanguage TryCreateLanguage(this ILanguageFactory factory, ITextSnapshot snapshot) { return(factory.TryCreateLanguage(snapshot.ContentType)); }
public static ILanguage TryCreateLanguage(this ILanguageFactory factory, ITextBuffer buffer) { return(factory.TryCreateLanguage(buffer.ContentType)); }