There is an obvious in Error npp src.
You can see that in PowerEditor\src\ScitillaComponent\ScintillaEditView.cpp.{TEXT("fortran"), TEXT("Fortran"), TEXT("Fortran source file"), L_FORTRAN, SCLEX_FORTRAN},
But you find Error in PowerEditor\src\ScitillaComponent\ScintillaEditView.h
void setFortranLexer() {
setLexer(SCLEX_F77, L_FORTRAN, LIST_0 | LIST_1 | LIST_2);
};
in SciLexer.h
SCLEX_FORTRAN( 36 ) != SCLEX_F77( 37 )
SCLEX_FORTRAN Fortran Free Format source code
SCLEX_F77 Fortran Fixed Format source code
以下是可以从 http://sourceforge.net/p/notepad-plus/bugs/ 搜索到的,之前关于 NotePad++ 在Fortran 语法设置的 bug 报告;
4223 | Notepad++ 6.3 could not identify the adjacent keywords of Fortran. | All | open | 2013-03-06 | 5 days ago | ||
3850 | FORTRAN code folding fails for certain IF blocks | None | open | 2012-06-27 | 2012-11-13 | ||
681 | Free fortran Highlighting | None | closed | 2007-02-01 | 2009-06-10 | ||
352 | Fortran block comment | None | closed | 2006-03-14 | 2010-10-02 |
对于 Notepad++ 6.3.2 之前版本( 含 6.3.2)可重新编译 Scintilla (修改 SciLexer.h,将SCLEX_FORTRAN 和 SCLEX_F77定义值对掉)
#define SCLEX_FORTRAN 37
#define SCLEX_F77 36
得到的
SciLexer.dll 替换Notepad++自带的,即可使 Fortran Free Format source code 得到正确的 FORTRAN Syntax Highlighting And Fold.
大家也可从 S ciLexerForNotepad++632Fortran.7z 下载已经重新编译的 SciLexer.dll
https://sourceforge.net/p/notepad-plus/discussion/331753/thread/83962ff2/1561/attachment/SciLexerForNotepad%2B%2B632Fortran.7z
替换后效果:
