static void FormatCurrentLine() { var document = Npp.GetCurrentDocument(); int currentLineNum = NppExtensions.GetCurrentLineNumber(document); string prevLineText = document.GetLine(currentLineNum - 1).TrimEnd(); if (prevLineText.EndsWith("{") || prevLineText.IsControlStatement()) { Perform(InsertIndent); } }
static void OnOpenBracket() { var document = Npp.GetCurrentDocument(); int currentLineNum = NppExtensions.GetCurrentLineNumber(document); string currLineText = document.GetLine(currentLineNum); string prevLineText = document.GetLine(currentLineNum - 1); if (currLineText.Trim() == "{" && prevLineText.IsControlStatement()) { Perform(RemoveIndent); } }
public static void FormatDocumentPrevLines() { var document = Npp.GetCurrentDocument(); int currentLineNum = NppExtensions.GetCurrentLineNumber(document); var prevLineEnd = document.PositionFromLine(currentLineNum) - Environment.NewLine.Length; int topScrollOffset = currentLineNum - document.GetFirstVisibleLine(); string code = document.GetTextBetween(0, prevLineEnd.Value); int currentPos = document.GetCurrentPos(); string newCode = FormatCode(code, ref currentPos, Npp.Editor.GetCurrentFilePath()); document.SetTextBetween(newCode, 0, prevLineEnd.Value); //no need to set the caret as it is after the formatted text anyway document.SetFirstVisibleLine(document.LineFromPosition(currentPos) - topScrollOffset); }
static void OnNewLine() { if (Config.Instance.FormatAsYouType) { var document = Npp.GetCurrentDocument(); int currentLineNum = NppExtensions.GetCurrentLineNumber(document); string prevLineText = document.GetLine(currentLineNum - 1).TrimEnd(); if (prevLineText != "") { SourceCodeFormatter.FormatDocumentPrevLines(); } } //it conflicts with N++ auto-indent (at least from v6.9.2) //if (Config.Instance.SmartIndenting) // FormatCurrentLine(); }