Notepad++ 7.8 Release Candidate 5
-
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.
-
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:
Indentation guide lines Python style:
-
@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:
NppBigSwitch.cpp with indentation guide lines Python style:
Steps to reproduce, part 1
- Create in Windows Explorer an empty file
bla.py
. - Create in Windows Explorer an empty file
bla.pas
. - Start Notepad++.
- Load file
bla.py
with Notepad++. - Load file
bla.pas
with Notepad++. - Load file
NppBigSwitch.cpp
from Notepad++ source code and scroll to line 70. - File
NppBigSwitch.cpp
is displayed with indentation guide lines style Standard. - Switch tab to file
bla.py
and back to tab with fileNppBigSwitch.cpp
. - File
NppBigSwitch.cpp
is displayed with indentation guide lines style Python. - Switch tab to file
bla.pas
and back to tab with fileNppBigSwitch.cpp
. - File
NppBigSwitch.cpp
is displayed with indentation guide lines style Standard again.
Steps to reproduce, part 2
- Start Notepad++.
- Load file
NppBigSwitch.cpp
from Notepad++ source code and scroll to line 70. - File
NppBigSwitch.cpp
is displayed with indentation guide lines style Standard. - Load file
bla.py
with Notepad++. - Switch tab to file
NppBigSwitch.cpp
. - File
NppBigSwitch.cpp
is displayed with indentation guide lines style Python. - Load file
NppCommands.cpp
from Notepad++ source code and scroll to line 158. - File
NppCommands.cpp
is displayed with indentation guide lines style Python. - Load file
bla.pas
with Notepad++. - Switch tab to file
NppCommands.cpp
orNppBigSwitch.cpp
. - Both files are displayed with indentation guide lines style Standard.
NppCommands.cpp with indentation guide lines Python style:
- Create in Windows Explorer an empty file
-
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. -
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.
-
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?
-