Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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();
        }