public LanguageMeta GetDefaultLanguage() { var language = new LanguageMeta(); language.LoadChildren(); language.InitializeChildren(); return language; }
public void LoadLanguageHighlighterAndSyntax(LanguageMeta lang) { // forced language, via context menu if (lang != null) { Language = lang; } // new tab else if (DocumentPath.IsBlank()) { Language = Controller.Current.Languages.GetDefaultLanguage(); return; } // language via rename or save else { var language = Controller.Current.Languages.GetLanguageByExtension(DocumentPath.Substring(DocumentPath.LastIndexOf('.') + 1)); if (Language != null && Language.Name == language.Name) return; Language = language; } // syntax highlighter if (Language.HasSyntax || Language.IsDefault) { var ruleset = Language.Syntax.GetHighlighter(); Editor.SyntaxHighlighting = ruleset; DocumentHighlighter = Editor.TextArea.GetService(typeof(IHighlighter)) as IHighlighter; CaretOffsetChanged(null, null); // to inform language context change } }