Я только что закончил просматривать исходный код АЭС, и у меня есть некоторые дополнительные сведения, если вы хотите найти решение для себя. Когда вы идете Файл -> Открыть, список расширений файлов загружается из файла Scintilla (SciLexer.dll).
Теперь, когда вы идете File -> Open, void Notepad_plus::fileOpen()
(в файле NppIO.cpp
). Сначала в список фильтров добавляется фильтр All Types, *.*
, А затем int Notepad_plus::setFileOpenSaveDlgFilters(FileDialog & fDlg, int langType)
(в том же файле). Эта функция просматривает записи Scintilla, о которых я упоминал выше, и добавляет их в список фильтров переданного FileDialog
. Код в FileOpen
выглядит следующим образом:
fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
Вы можете изменить индекс фильтра по умолчанию. Чтобы сделать это, вы можете вместо этого изменить эти строки так:
fDlg._ofn.nFilterIndex = 2L;
fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
Это должно установить индекс фильтра на второй по умолчанию.
Другой простой способ быстро исправить это - изменить эти строки (опять же, в NppIO.cpp
), чтобы они выглядели так:
fDlg.setExtFilter(TEXT("Text files"), TEXT(".txt"),
TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
Это гарантирует, что текстовые файлы будут первым фильтром в списке. Обратите внимание, что это приведет к двойному определению расширения .txt в записях, но если вы можете жить с этим предупреждением, это должно работать нормально.