Community
    • Login

    Notepad++ 7.8 Release Candidate 5

    Scheduled Pinned Locked Moved Announcements
    16 Posts 5 Posters 1.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dinkumoilD
      dinkumoil @donho
      last edited by

      @donho

      After opening a Python file, indentation guide lines style is set to Python style for all subsequently opened files, regardless of their file type.

      Additionally, when switching from a tab with a Python file to a tab with e.g. a C file which has been opened before the Python file, the C file’s indentation guide lines style is set to Python style. When switching to another non-Python file and back to the C file, the C file’s indentation guide lines stlye is set to Standard style again.

      1 Reply Last reply Reply Quote 0
      • donhoD
        donho
        last edited by donho

        @dinkumoil

        What do you mean by "indentation guide lines in Python style "?

        dinkumoilD 1 Reply Last reply Reply Quote 0
        • dinkumoilD
          dinkumoil @donho
          last edited by

          @donho said in Notepad++ 7.8 Release Candidate 5:

          What do you mean by "indentation guide lines in Python style "?

          Indentation guide lines Standard style:

          Imgur

          Indentation guide lines Python style:

          Imgur

          1 Reply Last reply Reply Quote 0
          • donhoD
            donho
            last edited by

            @dinkumoil
            OK, I see what it is indentation guide lines in Python style.
            You said:

            After opening a Python file, indentation guide lines style is set to Python style for all subsequently opened files, regardless of their file type

            Could you provide the screenshot of a c++ file in in Python style, please?
            I follow your instructions but all the open files (c++) show standard guideline.

            dinkumoilD 1 Reply Last reply Reply Quote 0
            • dinkumoilD
              dinkumoil @donho
              last edited by

              @donho said in Notepad++ 7.8 Release Candidate 5:

              Could you provide the screenshot of a c++ file in in Python style, please?

              NppBigSwitch.cpp with indentation guide lines Standard style:

              Imgur

              NppBigSwitch.cpp with indentation guide lines Python style:

              Imgur

              Steps to reproduce, part 1

              1. Create in Windows Explorer an empty file bla.py.
              2. Create in Windows Explorer an empty file bla.pas.
              3. Start Notepad++.
              4. Load file bla.py with Notepad++.
              5. Load file bla.pas with Notepad++.
              6. Load file NppBigSwitch.cpp from Notepad++ source code and scroll to line 70.
              7. File NppBigSwitch.cpp is displayed with indentation guide lines style Standard.
              8. Switch tab to file bla.py and back to tab with file NppBigSwitch.cpp.
              9. File NppBigSwitch.cpp is displayed with indentation guide lines style Python.
              10. Switch tab to file bla.pas and back to tab with file NppBigSwitch.cpp.
              11. File NppBigSwitch.cpp is displayed with indentation guide lines style Standard again.

              Steps to reproduce, part 2

              1. Start Notepad++.
              2. Load file NppBigSwitch.cpp from Notepad++ source code and scroll to line 70.
              3. File NppBigSwitch.cpp is displayed with indentation guide lines style Standard.
              4. Load file bla.py with Notepad++.
              5. Switch tab to file NppBigSwitch.cpp.
              6. File NppBigSwitch.cpp is displayed with indentation guide lines style Python.
              7. Load file NppCommands.cpp from Notepad++ source code and scroll to line 158.
              8. File NppCommands.cpp is displayed with indentation guide lines style Python.
              9. Load file bla.pas with Notepad++.
              10. Switch tab to file NppCommands.cpp or NppBigSwitch.cpp.
              11. Both files are displayed with indentation guide lines style Standard.

              NppCommands.cpp with indentation guide lines Python style:

              Imgur

              1 Reply Last reply Reply Quote 0
              • donhoD
                donho
                last edited by

                @dinkumoil

                Thank you for the very detail description. I can reproduce it now.
                I’ve tested in v7.7.1, in which python style guideline doesn’t work/exist.
                So it’s a bug, yes. But it’s not a regression for me.
                Except a quick solution can be provided, I would say it’ll be fixed in the next version.

                dinkumoilD 1 Reply Last reply Reply Quote 1
                • dinkumoilD
                  dinkumoil @donho
                  last edited by

                  @donho

                  The quick solution would be:

                  At every tab switch (corresponds to fireing a NPPM_BUFFERACTIVATED event) Notepad++ has to check if the file of the current buffer is a Python file.

                  • If yes -> set indentation guide lines style to Python.
                  • If no -> set indentation guide lines style to Standard.
                  1 Reply Last reply Reply Quote 1
                  • donhoD
                    donho
                    last edited by

                    @dinkumoil said in Notepad++ 7.8 Release Candidate 5:

                    At every tab switch (corresponds to fireing a NPPM_BUFFERACTIVATED event) Notepad++ has to check if the file of the current buffer is a Python file

                    The following code is in void ScintillaEditView::setLexer(int lexerID, LangType langType, int whichList) :

                    	if (svp._indentGuideLineShow)
                    	{
                    		const auto currentIndentMode = execute(SCI_GETINDENTATIONGUIDES);
                    		// Python like indentation, excludes lexers (Nim, VB, YAML, etc.)
                    		// that includes tailing empty or whitespace only lines in folding block.
                    		const bool pythonLike = (lexerID == SCLEX_PYTHON || lexerID == SCLEX_COFFEESCRIPT || lexerID == SCLEX_HASKELL);
                    		const int docIndentMode = pythonLike ? SC_IV_LOOKFORWARD : SC_IV_LOOKBOTH;
                    		if (currentIndentMode != docIndentMode)
                    			execute(SCI_SETINDENTATIONGUIDES, docIndentMode);
                    	}
                    

                    It should be executed in each switch of tab. No idea why it doesn’t work.
                    You can provide the PR to fix it then I will include it in v7.8, otherwise I will fix it in the next release.

                    dinkumoilD 1 Reply Last reply Reply Quote 1
                    • dinkumoilD
                      dinkumoil @donho
                      last edited by

                      @donho said in Notepad++ 7.8 Release Candidate 5:

                      You can provide the PR to fix it then I will include it in v7.8

                      Sorry, I’m not a C++ dev and I’m not familiar with the Notepad++ code, thus I’m not able to fix that issue.

                      1 Reply Last reply Reply Quote 0
                      • dinkumoilD
                        dinkumoil
                        last edited by dinkumoil

                        @donho

                        I wrote a plugin named ExtSettings (see >>> here <<<) that can configure the indentation guide lines style (and some other settings). I had to release a maintenance update because switching indentation guide lines style to the configured value didn’t work reliable anymore because of that new feature of Notepad++ related to the bug above.

                        I already made a PR with the updated version, all checks have been successful. Would you mind to include the updated version into the plugin list that will be release with Npp v7.8?

                        1 Reply Last reply Reply Quote 0
                        • donhoD
                          donho
                          last edited by

                          @dinkumoil

                          Fixed in:
                          https://github.com/notepad-plus-plus/notepad-plus-plus/commit/29919bea226d5a45e36064cc9214b85beeddbd56

                          1 Reply Last reply Reply Quote 2
                          • First post
                            Last post
                          The Community of users of the Notepad++ text editor.
                          Powered by NodeBB | Contributors