Notepad++ 7.8 Release Candidate 5



  • @dinkumoil

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



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



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



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



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



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


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



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



  • @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?




Log in to reply