Ho appena finito di rivedere il codice sorgente NPP e ho ulteriori dettagli se desideri cercare una soluzione per te stesso. Quando vai su File -> Apri, l'elenco delle estensioni di file viene caricato dal file Scintilla (SciLexer.dll).
Ora, quando vai su File -> Apri, la void Notepad_plus::fileOpen()
funzione viene chiamata (nel NppIO.cpp
file). Inizialmente, il All Types, *.*
filtro viene aggiunto all'elenco filtri, quindi int Notepad_plus::setFileOpenSaveDlgFilters(FileDialog & fDlg, int langType)
viene chiamata la funzione (nello stesso file). Questa funzione passa attraverso le voci di Scintilla che ho menzionato sopra e le aggiunge FileDialog
all'elenco dei filtri passati . Il codice in FileOpen
è simile al seguente:
fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
È possibile modificare l'indice del filtro predefinito. Per fare ciò, puoi invece cambiare quelle righe in questo:
fDlg._ofn.nFilterIndex = 2L;
fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
Ciò dovrebbe impostare l'indice del filtro sul secondo per impostazione predefinita.
Un altro modo semplice per risolvere rapidamente questo problema è modificare quelle righe (di nuovo, in NppIO.cpp
) in modo che appaiano così:
fDlg.setExtFilter(TEXT("Text files"), TEXT(".txt"),
TEXT("All types"), TEXT(".*"), NULL);
setFileOpenSaveDlgFilters(fDlg);
Ciò garantirà che i file di testo siano il primo filtro nell'elenco. Nota che questo farà sì che l'estensione .txt sia doppiamente definita nelle voci, ma se puoi vivere con quell'avvertimento, questo dovrebbe funzionare bene.