コード例 #1
0
ファイル: ModeLineProvider.cs プロジェクト: xwiz/viasfora
        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);
        }
コード例 #2
0
        public static ILanguage TryCreateLanguage(this ILanguageFactory factory, IContentType contentType)
        {
            Func <String, bool> matcher = (String lang) => contentType.IsOfType(lang);

            return(factory.TryCreateLanguage(matcher));
        }
コード例 #3
0
 public static ILanguage TryCreateLanguage(this ILanguageFactory factory, ITextSnapshot snapshot)
 {
     return(factory.TryCreateLanguage(snapshot.ContentType));
 }
コード例 #4
0
 public static ILanguage TryCreateLanguage(this ILanguageFactory factory, ITextBuffer buffer)
 {
     return(factory.TryCreateLanguage(buffer.ContentType));
 }