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.
    • 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