public ucTextMergeEditor(TextFileInformation fileInformation) : this() { this.fileInformation = fileInformation; toolStripButtonEnableEditing.Checked = false; toolStripButtonEnableEditing_CheckedChanged(toolStripButtonEnableEditing, new EventArgs()); // Apply default options SyntaxLanguage language = Utility.GetSyntaxLanguageForFileInformation(fileInformation); editorOriginal.Document.Language = language; editorResolved.Document.Language = language; if (fileInformation.PrevGenFile.HasContents == false) { displayAlgorithm = new TwoWayDiffDisplayAlgorithm(this); WarningText = "The previous version of the file seems to be missing. This merge is a 2 way merge," + " so all changes must be examined to resolve the conflict."; } else { displayAlgorithm = new ThreeWayDiffDisplayAlgorithm(this); } Fill(); }
private TripleSlashCommentModel(string xml, SyntaxLanguage language, ITripleSlashCommentParserContext context) { // Transform triple slash comment XDocument doc = TripleSlashCommentTransformer.Transform(xml, language); _context = context; if (!context.PreserveRawInlineComments) { ResolveSeeCref(doc, context.AddReferenceDelegate, context.ResolveCRef); ResolveSeeAlsoCref(doc, context.AddReferenceDelegate, context.ResolveCRef); ResolveExceptionCref(doc, context.AddReferenceDelegate, context.ResolveCRef); } ResolveCodeSource(doc, context); var nav = doc.CreateNavigator(); Summary = GetSummary(nav, context); Remarks = GetRemarks(nav, context); Returns = GetReturns(nav, context); Exceptions = GetExceptions(nav, context); Sees = GetSees(nav, context); SeeAlsos = GetSeeAlsos(nav, context); Examples = GetExamples(nav, context); Parameters = GetParameters(nav, context); TypeParameters = GetTypeParameters(nav, context); IsInheritDoc = GetIsInheritDoc(nav, context); }
TripleSlashCommentModel(string xml, SyntaxLanguage language, TripleSlashCommentParserContext context) { // Transform triple slash comment var doc = TripleSlashCommentTransformer.Transform(xml, language); _context = context; ResolveSeeCref(doc); ResolveSeeAlsoCref(doc); ResolveExceptionCref(doc); ResolveCodeSource(doc); _nav = doc.CreateNavigator(); Summary = GetSummary(); Remarks = GetRemarks(); Returns = GetReturns(); Exceptions = GetExceptions(); Sees = GetSees(); SeeAlsos = GetSeeAlsos(); Examples = GetExamples(); Parameters = GetParameters(); TypeParameters = GetTypeParameters(); IsInheritDoc = GetIsInheritDoc(); }
public SymbolVisitorAdapter(YamlModelGenerator generator, SyntaxLanguage language, bool preserveRawInlineComments = false, string filterConfigFile = null) { _generator = generator; Language = language; _preserveRawInlineComments = preserveRawInlineComments; FilterVisitor = string.IsNullOrEmpty(filterConfigFile) ? new DefaultFilterVisitor() : new DefaultFilterVisitor().WithConfig(filterConfigFile).WithCache(); }
public static TripleSlashCommentModel CreateModel(string xml, SyntaxLanguage language, ITripleSlashCommentParserContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (string.IsNullOrEmpty(xml)) { return(null); } // Quick turnaround for badly formed XML comment if (xml.StartsWith("<!-- Badly formed XML comment ignored for member ")) { Logger.LogWarning($"Invalid triple slash comment is ignored: {xml}"); return(null); } try { var model = new TripleSlashCommentModel(xml, language, context); return(model); } catch (XmlException) { return(null); } }
public ParseResult Run(MetadataModel yaml, ResolverContext context) { var index = yaml.Indexer; TreeIterator.PreorderAsync <MetadataItem>(yaml.TocYamlViewModel, null, (s) => { if (s.IsInvalid) { return(null); } else { return(s.Items); } }, (member, parent) => { // get all the possible places where link is possible if (member.Syntax != null && member.Syntax.Content != null) { SyntaxLanguage[] keys = new SyntaxLanguage[member.Syntax.Content.Count]; member.Syntax.Content.Keys.CopyTo(keys, 0); foreach (var key in keys) { member.Syntax.Content[key] = NormalizeLines(member.Syntax.Content[key]); } } return(Task.FromResult(true)); } ).Wait(); return(new ParseResult(ResultLevel.Success)); }
private static string GetSyntaxFileName(SyntaxLanguage lang) { string file = Enum.GetName(typeof(SyntaxLanguage), lang); file += ".syn"; return("GuruComponents.CodeEditor.CodeEditor.SyntaxFiles.Syns." + file); }
private static string GetSyntaxFileName(SyntaxLanguage lang) { string file = Enum.GetName(typeof(SyntaxLanguage), lang); file += ".syn"; return "Fireball.CodeEditor.SyntaxFiles.Syns." + file; }
public SupportedLanguage(string title, string color, FileType fileType, SyntaxLanguage syntax, params string[] extensions) { Title = title; Syntax = syntax; Color = color; Extensions = extensions; FileType = fileType; }
public void SetSyntaxLanguage(SyntaxLanguage syntaxLanguage) { CodeEditorSyntaxLoader.SetSyntax(this._EditorControl, syntaxLanguage); if (LanguageChanged != null) { LanguageChanged(this, new LanguageChangedEventArgs(this._EditorControl.Document.Parser.Language)); } }
public SymbolVisitorAdapter(YamlModelGenerator generator, SyntaxLanguage language, Compilation compilation, bool preserveRawInlineComments = false, string filterConfigFile = null, IReadOnlyDictionary <Compilation, IEnumerable <IMethodSymbol> > extensionMethods = null) { _generator = generator; Language = language; _currentCompilation = compilation; _currentCompilationRef = compilation.ToMetadataReference(); _preserveRawInlineComments = preserveRawInlineComments; FilterVisitor = string.IsNullOrEmpty(filterConfigFile) ? new DefaultFilterVisitor() : new DefaultFilterVisitor().WithConfig(filterConfigFile).WithCache(); _extensionMethods = extensionMethods != null?extensionMethods.ToDictionary(p => p.Key, p => p.Value.Where(e => FilterVisitor.CanVisitApi(e))) : new Dictionary <Compilation, IEnumerable <IMethodSymbol> >(); }
private static List <SpecViewModel> GetSpec(ReferenceItem reference, SyntaxLanguage language) { var list = reference.Parts.GetLanguageProperty(language); if (list == null || list.Count <= 1) { return(null); } return(list.ConvertAll(s => s.ToSpecViewModel())); }
public static XDocument Transform(string xml, SyntaxLanguage language) { using var ms = new MemoryStream(); using var writer = new XHtmlWriter(new StreamWriter(ms)); XDocument doc = XDocument.Parse(xml, LoadOptions.PreserveWhitespace); var args = new XsltArgumentList(); args.AddParam("language", "urn:input-variables", WebUtility.HtmlEncode(language.ToString().ToLower())); _transform.Transform(doc.CreateNavigator(), args, writer); ms.Seek(0, SeekOrigin.Begin); return(XDocument.Load(ms, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo)); }
public XDocument Transform(string xml, SyntaxLanguage language) { using (var ms = new MemoryStream()) using (var writer = new XHtmlWriter(new StreamWriter(ms))) { XDocument doc = XDocument.Parse(xml, LoadOptions.PreserveWhitespace); var args = new XsltArgumentList(); args.AddParam("language", "urn:input-variables", WebUtility.HtmlEncode(language.ToString().ToLower())); _transform.Transform(doc.CreateNavigator(), args, writer); ms.Seek(0, SeekOrigin.Begin); return XDocument.Load(ms, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); } }
private void OnSyntaxLanguageChanged(SyntaxLanguage newValue) { if (newValue == null) { tokenizer = null; return; } if (newValue.HighlightColors == null) { throw new ArgumentException("Grammer HightlightColrs must not be null"); } tokenizer = new Tokenizer(newValue.Grammer); }
public SymbolVisitorAdapter(YamlModelGenerator generator, SyntaxLanguage language, Compilation compilation, ExtractMetadataOptions options) { _generator = generator; Language = language; _currentCompilation = compilation; _currentCompilationRef = compilation.ToMetadataReference(); _preserveRawInlineComments = options.PreserveRawInlineComments; var configFilterRule = ConfigFilterRule.LoadWithDefaults(options.FilterConfigFile); var filterVisitor = options.DisableDefaultFilter ? (IFilterVisitor) new AllMemberFilterVisitor() : new DefaultFilterVisitor(); FilterVisitor = filterVisitor.WithConfig(configFilterRule).WithCache(); _extensionMethods = options.RoslynExtensionMethods != null?options.RoslynExtensionMethods.ToDictionary(p => p.Key, p => p.Value.Where(e => FilterVisitor.CanVisitApi(e))) : new Dictionary <Compilation, IEnumerable <IMethodSymbol> >(); _codeSourceBasePath = options.CodeSourceBasePath; }
private void cboLanguage_SelectedIndexChanged(object sender, EventArgs e) { try { SyntaxLanguage language = SyntaxLanguage.CSharp; if (cboLanguage.Text == "VB .NET") { language = SyntaxLanguage.VBNET; } CodeEditorSyntaxLoader.SetSyntax(codeEditorDestination, language); codeEditorDestination.Document.Clear(); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); MessageBox.Show("It's not possible to select the destination language. \n\nDetails: " + ex.Message, "VB Converter", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void CreateScintillaComponents(string textBefore, string textAfter, SyntaxLanguage language = SyntaxLanguage.SQL) { QueryEditorBefore = new ScintillaTextEditorFactory().Create(); QueryEditorBefore.Text = textBefore; QueryEditorBefore.ReadOnly = true; splitContainer1.Panel1.Controls.Add(QueryEditorBefore); QueryEditorAfter = new ScintillaTextEditorFactory().Create(); QueryEditorAfter.Text = textAfter; QueryEditorAfter.ReadOnly = true; splitContainer1.Panel2.Controls.Add(QueryEditorAfter); //compute difference if (textBefore == null) { textBefore = ""; } if (textAfter == null) { textAfter = ""; } Diff diff = new Diff(); var highlighter = new ScintillaLineHighlightingHelper(); highlighter.ClearAll(QueryEditorAfter); highlighter.ClearAll(QueryEditorBefore); foreach (Diff.Item item in diff.DiffText(textBefore, textAfter)) { for (int i = item.StartA; i < item.StartA + item.deletedA; i++) { highlighter.HighlightLine(QueryEditorBefore, i, Color.Pink); } for (int i = item.StartB; i < item.StartB + item.insertedB; i++) { highlighter.HighlightLine(QueryEditorAfter, i, Color.LawnGreen); } } }
private static string GetName(ReferenceItem reference, SyntaxLanguage language, Converter <LinkItem, string> getName) { var list = reference.Parts.GetLanguageProperty(language); if (list == null) { return(null); } if (list.Count == 0) { Debug.Fail("Unexpected reference."); return(null); } if (list.Count == 1) { return(getName(list[0])); } return(string.Concat(list.ConvertAll(item => getName(item)).ToArray())); }
public static TripleSlashCommentModel CreateModel(string xml, SyntaxLanguage language, ITripleSlashCommentParserContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); if (string.IsNullOrEmpty(xml)) return null; // Quick turnaround for badly formed XML comment if (xml.StartsWith("<!-- Badly formed XML comment ignored for member ")) { Logger.LogWarning($"Invalid triple slash comment is ignored: {xml}"); return null; } try { var model = new TripleSlashCommentModel(xml, language, context); return model; } catch (XmlException) { return null; } }
public void Run(MetadataModel yaml, ResolverContext context) { TreeIterator.Preorder(yaml.TocYamlViewModel, null, s => s.IsInvalid ? null : s.Items, (member, parent) => { // get all the possible places where link is possible if (member.Syntax != null && member.Syntax.Content != null) { SyntaxLanguage[] keys = new SyntaxLanguage[member.Syntax.Content.Count]; member.Syntax.Content.Keys.CopyTo(keys, 0); foreach (var key in keys) { member.Syntax.Content[key] = NormalizeLines(member.Syntax.Content[key]); } } return(true); }); }
public void Run(MetadataModel yaml, ResolverContext context) { TreeIterator.Preorder(yaml.TocYamlViewModel, null, s => s.IsInvalid ? null : s.Items, (member, parent) => { // get all the possible places where link is possible if (member.Syntax != null && member.Syntax.Content != null) { SyntaxLanguage[] keys = new SyntaxLanguage[member.Syntax.Content.Count]; member.Syntax.Content.Keys.CopyTo(keys, 0); foreach(var key in keys) { member.Syntax.Content[key] = NormalizeLines(member.Syntax.Content[key]); } } return true; }); }
private TripleSlashCommentModel(string xml, SyntaxLanguage language, ITripleSlashCommentParserContext context) { // Transform triple slash comment XDocument doc = _transformer.Transform(xml, language); _context = context; if (!context.PreserveRawInlineComments) { ResolveSeeCref(doc, context.AddReferenceDelegate); ResolveSeeAlsoCref(doc, context.AddReferenceDelegate); } var nav = doc.CreateNavigator(); Summary = GetSummary(nav, context); Remarks = GetRemarks(nav, context); Returns = GetReturns(nav, context); Exceptions = GetExceptions(nav, context); Sees = GetSees(nav, context); SeeAlsos = GetSeeAlsos(nav, context); Examples = GetExamples(nav, context); Parameters = GetParameters(nav, context); TypeParameters = GetTypeParameters(nav, context); }
public void ConfigureLanguage() { if ((this._query.QueryKind >= QueryLanguage.FSharpExpression) && this._document.get_SpanIndicatorLayers().Contains("Syntax error")) { this._document.get_SpanIndicatorLayers().get_Item("Syntax error").Clear(); } QueryCompiler compiler = QueryCompiler.Create(this._query, false); this._language = this.GetLanguage(); this._document.ResetLanguage(); if (this._query.QueryKind == QueryLanguage.SQL) { string str; this._document.set_FooterText((string)(str = null)); this._document.set_HeaderText(str); } else { this._document.set_HeaderText(compiler.GetHeader(this._query)); this._document.set_FooterText(compiler.GetFooter(this._query)); } this._document.set_Language(this._language); this._document.Reparse(); }
protected SimpleYamlModelGenerator(SyntaxLanguage language) { Language = language; }
/// <summary> /// DO NOT INCLUDE THE .syn Extension!! /// </summary> /// <param name="lang">The Language e.g. CSharp or VBNET or Cobol</param> /// <returns></returns> private string GetSyntaxFileName(SyntaxLanguage lang) { var file = Enum.GetName(typeof(SyntaxLanguage), lang); file += ".syn"; return file; }
public void SetSyntaxLanguage(SyntaxLanguage syntaxLanguage) { prevgenSyntaxEditor.Document.Language = syntaxLanguage; templateSyntaxEditor.Document.Language = syntaxLanguage; userSyntaxEditor.Document.Language = syntaxLanguage; }
public static TValue GetLanguageProperty <TValue>(this SortedList <SyntaxLanguage, TValue> dict, SyntaxLanguage language, TValue defaultValue = null) where TValue : class { TValue result; if (dict.TryGetValue(language, out result)) { return(result); } if (language == SyntaxLanguage.Default && dict.Count > 0) { return(dict.Values[0]); } return(defaultValue); }
public SymbolVisitorAdapter(YamlModelGenerator generator, SyntaxLanguage language, bool preserveRawInlineComments = false) { _generator = generator; Language = language; _preserveRawInlineComments = preserveRawInlineComments; }
private static string GetSyntaxFileName(SyntaxLanguage lang) { string file = Enum.GetName(typeof(SyntaxLanguage), lang); file += ".syn"; return "System.Windows.Controls.SyntaxFiles." + file; }
public SQLBeforeAndAfterViewer(string sqlBefore, string sqlAfter, string headerTextForBefore, string headerTextForAfter, string caption, MessageBoxButtons buttons, SyntaxLanguage language = SyntaxLanguage.SQL) { InitializeComponent(); bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime); if (designMode) //dont add the QueryEditor if we are in design time (visual studio) because it breaks { return; } QueryEditorBefore = new ScintillaTextEditorFactory().Create(); QueryEditorBefore.Text = sqlBefore; QueryEditorBefore.ReadOnly = true; splitContainer1.Panel1.Controls.Add(QueryEditorBefore); QueryEditorAfter = new ScintillaTextEditorFactory().Create(); QueryEditorAfter.Text = sqlAfter; QueryEditorAfter.ReadOnly = true; splitContainer1.Panel2.Controls.Add(QueryEditorAfter); //compute difference var highlighter = new ScintillaLineHighlightingHelper(); highlighter.ClearAll(QueryEditorAfter); highlighter.ClearAll(QueryEditorBefore); if (sqlBefore == null) { sqlBefore = ""; } if (sqlAfter == null) { sqlAfter = ""; } Diff diff = new Diff(); foreach (Diff.Item item in diff.DiffText(sqlBefore, sqlAfter)) { for (int i = item.StartA; i < item.StartA + item.deletedA; i++) { highlighter.HighlightLine(QueryEditorBefore, i, Color.Pink); } for (int i = item.StartB; i < item.StartB + item.insertedB; i++) { highlighter.HighlightLine(QueryEditorAfter, i, Color.LawnGreen); } } switch (buttons) { case MessageBoxButtons.OK: btnYes.Visible = true; btnYes.Text = "Ok"; btnNo.Visible = false; break; case MessageBoxButtons.YesNo: btnYes.Visible = true; btnNo.Visible = true; break; default: throw new NotSupportedException("buttons"); } lblBefore.Text = headerTextForBefore; lblAfter.Text = headerTextForAfter; this.Text = caption; }
public YamlModelGeneratorVisitor(object context, SyntaxLanguage language) { this.language = language; }
public static Language GetLanguageFrom(SyntaxLanguage syntax) { Stream xml = GetSyntaxStream(GetSyntaxFileName(syntax)); return Language.FromSyntaxFile(xml); }
public void ConfigureLanguage() { if ((this._query.QueryKind >= QueryLanguage.FSharpExpression) && this._document.get_SpanIndicatorLayers().Contains("Syntax error")) { this._document.get_SpanIndicatorLayers().get_Item("Syntax error").Clear(); } QueryCompiler compiler = QueryCompiler.Create(this._query, false); this._language = this.GetLanguage(); this._document.ResetLanguage(); if (this._query.QueryKind == QueryLanguage.SQL) { string str; this._document.set_FooterText((string) (str = null)); this._document.set_HeaderText(str); } else { this._document.set_HeaderText(compiler.GetHeader(this._query)); this._document.set_FooterText(compiler.GetFooter(this._query)); } this._document.set_Language(this._language); this._document.Reparse(); }
public void SetSyntaxLanguage(SyntaxLanguage syntaxLanguage) { CodeEditorSyntaxLoader.SetSyntax(this._EditorControl, syntaxLanguage); if (LanguageChanged != null) LanguageChanged(this, new LanguageChangedEventArgs(this._EditorControl.Document.Parser.Language)); }
public static Language GetLanguageFrom(SyntaxLanguage syntax) { Stream xml = GetSyntaxStream(GetSyntaxFileName(syntax)); return(Language.FromSyntaxFile(xml)); }
public static void SetSyntax(CodeEditorControl editor, SyntaxLanguage language) { Stream xml = GetSyntaxStream(GetSyntaxFileName(language)); editor.Document.Parser.Init(Language.FromSyntaxFile(xml)); }
private static string GetName(ReferenceItem reference, SyntaxLanguage language, Converter<LinkItem, string> getName) { var list = reference.Parts.GetLanguageProperty(language); if (list == null) { return null; } if (list.Count == 0) { Debug.Fail("Unexpected reference."); return null; } if (list.Count == 1) { return getName(list[0]); } return string.Concat(list.ConvertAll(item => getName(item)).ToArray()); }
private static List<SpecViewModel> GetSpec(ReferenceItem reference, SyntaxLanguage language) { var list = reference.Parts.GetLanguageProperty(language); if (list == null || list.Count <= 1) { return null; } return list.ConvertAll(SpecViewModel.FromModel); }
protected void SetLanguage(SyntaxLanguage syntaxLanguage) { CodeEditorSyntaxLoader.SetSyntax(txtText, syntaxLanguage); }
/// <summary> /// Creates a new SQL (default) Scintilla editor with highlighting /// </summary> /// <param name="commandFactory">Unless your control is going to be 100% ReadOnly then you should supply an <see cref="ICombineableFactory"/> to allow dragging and /// dropping components into the window. The <see cref="ICombineableFactory"/> will decide whether the given object can be translated into an <see cref="ICombineToMakeCommand"/> and hence into a unique bit of SQL /// to add to the editor</param> /// <param name="language">Determines highlighting, options include mssql,csharp or null</param> /// <param name="syntaxHelper"></param> /// <param name="spellCheck"></param> /// <param name="lineNumbers"></param> /// <param name="currentDirectory"></param> /// <returns></returns> public Scintilla Create(ICombineableFactory commandFactory = null, SyntaxLanguage language = SyntaxLanguage.SQL, IQuerySyntaxHelper syntaxHelper = null, bool spellCheck = false, bool lineNumbers = true, string currentDirectory = null) { var toReturn = new Scintilla(); toReturn.Dock = DockStyle.Fill; toReturn.HScrollBar = true; toReturn.VScrollBar = true; if (lineNumbers) { toReturn.Margins[0].Width = 40; //allows display of line numbers } else { foreach (var margin in toReturn.Margins) { margin.Width = 0; } } toReturn.ClearCmdKey(Keys.Control | Keys.S); //prevent Ctrl+S displaying ascii code toReturn.ClearCmdKey(Keys.Control | Keys.R); //prevent Ctrl+R displaying ascii code toReturn.ClearCmdKey(Keys.Control | Keys.W); //prevent Ctrl+W displaying ascii code switch (language) { case SyntaxLanguage.SQL: SetSQLHighlighting(toReturn, syntaxHelper); break; case SyntaxLanguage.CSharp: SetCSharpHighlighting(toReturn); break; case SyntaxLanguage.XML: SetLexerEnumHighlighting(toReturn, Lexer.Xml); break; case SyntaxLanguage.LogFile: SetLexerEnumHighlighting(toReturn, Lexer.Verilog); break; } if (commandFactory != null) { toReturn.AllowDrop = true; toReturn.DragEnter += (s, e) => OnDragEnter(s, e, commandFactory); toReturn.DragDrop += (s, e) => OnDragDrop(s, e, commandFactory); } toReturn.WrapMode = (WrapMode)UserSettings.WrapMode; var scintillaMenu = new ScintillaMenu(toReturn, spellCheck); toReturn.ContextMenuStrip = scintillaMenu; try { if (spellCheck) { string aff; string dic; if (currentDirectory == null) { aff = "en_us.aff"; dic = "en_us.dic"; } else { aff = Path.Combine(currentDirectory, "en_us.aff"); dic = Path.Combine(currentDirectory, "en_us.dic"); } var hunspell = new Hunspell(aff, dic); DateTime lastCheckedSpelling = DateTime.MinValue; toReturn.KeyPress += (s, e) => { if (DateTime.Now.Subtract(lastCheckedSpelling) > TimeSpan.FromSeconds(10)) { lastCheckedSpelling = DateTime.Now; CheckSpelling((Scintilla)s, hunspell); } }; toReturn.Leave += (s, e) => CheckSpelling((Scintilla)s, hunspell); toReturn.Disposed += (s, e) => scintilla_Disposed(s, e, hunspell); scintillaMenu.Hunspell = hunspell; } } catch (Exception e) { if (!DictionaryExceptionShown) { ExceptionViewer.Show("Could not load dictionary", e); DictionaryExceptionShown = true; } } return(toReturn); }