public IDocumentAffinity GetAffinity(int line, int col) { IDocumentAffinity grm = null; var id = GetAffinityId(line, col); if (id != 0) { grm = App.Ext.Grammars().GetGrammar(id); } return(grm ?? GetRootAffinity() ?? editor.EditorSettings); }
private bool TraverseBackward(IDocumentAffinity aff, string brackets, int pi, Selection sel) { var cc = 0; for (var lni = sel.Caret.Col > 2 ? sel.Caret.Line : sel.Caret.Line - 1; lni > -1; lni--) { var line = editor.Lines[lni]; var ist1 = lni == sel.Caret.Line ? sel.Caret.Col - 1 : line.Length - 1; var ist2 = lni == sel.Caret.Line ? sel.Caret.Col - 2 : line.Length - 1; var grm = editor.AffinityManager.GetAffinity(new Pos(lni, ist1)); if (grm != aff && lni != sel.Caret.Line) { continue; } for (var i = ist2; i > -1; i--) { if (line[i].Char == brackets[pi] && IsBracketStyle(line, i)) { cc++; } else if (line[i].Char == brackets[pi - 1] && IsBracketStyle(line, i)) { if (cc > 0) { cc--; } else { Style(sel.Caret.Line, sel.Caret.Col - 1); Style(lni, i); return(true); } } } } return(false); }
private bool TraverseForward(IDocumentAffinity aff, string brackets, int pi, Selection sel) { var cc = 0; for (var lni = sel.Caret.Line; lni < editor.Lines.Count; lni++) { var line = editor.Lines[lni]; var ist = lni == sel.Caret.Line ? sel.Caret.Col + 1 : 0; var grm = editor.AffinityManager.GetAffinity(new Pos(lni, ist)); if (grm != aff && lni != sel.Caret.Line) { continue; } for (var i = ist; i < line.Length; i++) { if (line[i].Char == brackets[pi] && IsBracketStyle(line, i)) { cc++; } else if (line[i].Char == brackets[pi + 1] && IsBracketStyle(line, i)) { if (cc > 0) { cc--; } else { Style(sel.Caret.Line, sel.Caret.Col); Style(lni, i); return(true); } } } } return(false); }
public static string GetNonWordSymbols(this IDocumentAffinity aff, EditorControl ctx) { return(aff.NonWordSymbols ?? ctx.EditorSettings.NonWordSymbols); }
public static Identifier GetIndentComponentKey(this IDocumentAffinity aff, EditorControl ctx) { return(aff.IndentComponentKey ?? ctx.EditorSettings.IndentComponentKey); }
public static string GetAutocompleteSymbols(this IDocumentAffinity aff, EditorControl ctx) { return(aff.AutocompleteSymbols ?? ctx.EditorSettings.AutocompleteSymbols); }
public static string GetBracketSymbols(this IDocumentAffinity aff, EditorControl ctx) { return(aff.BracketSymbols ?? ctx.EditorSettings.BracketSymbols); }