Skip to content

Commit

Permalink
Update built-in file extension list, improve scheme detection for aut…
Browse files Browse the repository at this point in the history
…omake / autoconf *.in file.
  • Loading branch information
zufuliu committed Nov 25, 2018
1 parent 9578f1e commit da010ca
Show file tree
Hide file tree
Showing 9 changed files with 79 additions and 60 deletions.
98 changes: 56 additions & 42 deletions doc/FileExt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,23 @@ Default Text
C/C++ Source
c
cpp
cxx
cc
h
hpp
hxx
hh
cxx C++ Source File
cc C++ Source File
h C/C++ Header File
hpp C++ Header File
hxx C++ Header File
hh C++ Header File
inl C++ Inline File
pch Precompiled Header File
idl interface definition language
odl Object Definition Language
midl Microsoft Interface Definition Language
m Objective C Source File
mm Objective C++ Source File
xpm X11 Pixmap Graphic

*.h.in

C# Source
cs
csx C# Script
Expand All @@ -38,6 +43,7 @@ Java Source
java
jad Jad Decompiler
aidl Android IDL
bsh BeanShell

JavaScript
js
Expand All @@ -49,11 +55,14 @@ JSON Document
har Firefox -> Web Developer -> Network
ipynb Jupyter Notebook
wxcp CodeLite wxCrafter Resource
jshintrc JSHint Configuration File
eslintrc ESLint Configuration File
jsonld JSON for Linked Data

PHP Script
php
phpt PHP Test Script
phtml
phtml PHP Web Page
eyecode eyeOS

Python Script
Expand All @@ -68,11 +77,12 @@ Ruby Script
rb
ruby
rbw
rake
rjs
rake Ruby makefile
rjs Ruby JavaScript
gemspec RubyGems Specification
podspec CocoaPods

Rakefile
Rakefile Ruby makefile
Podfile CocoaPods

SQL Query
Expand All @@ -82,32 +92,32 @@ SQL Query
Web Source Code
html
htm
shtml
xhtml
asp
aspx
jsp
shtml Server Side Include HTML File
xhtml Extensible Hypertext Markup Language File
asp Active Server Page
aspx Active Server Page Extended File
jsp Java Server Page
mht MHTML Web Archive
htd
htt
hta
htc
cfm
tpl
htd Adobe ExtendScript HTML file
htt Hypertext Template File
hta HTML Application
htc HTML Component File
cfm ColdFusion Markup File
tpl Document Template
jd

XML Document
xml
xsl
xslt
xsd
dtd
rss
svg
xul
xsl XML Style Sheet
xslt XSL Transformation File
xsd XML Schema Definition
dtd Document Type Definition File
rss Rich Site Summary
svg Scalable Vector Graphics File
xul XML User Interface Language File
axl
rdf
xaml WPF XAML
rdf Resource Description Framework File
xaml WPF Extensible Application Markup Language
resx ResX Schema
plist Property List
pom Maven POM
Expand Down Expand Up @@ -153,7 +163,8 @@ CMake Script

CMakeLists.txt
CMakeCache.txt
*.cmake.in*
*.cmake.in
*.ctest.in

Config File
conf
Expand All @@ -175,7 +186,8 @@ Config File

D Source
d
di
di D Interface File
dd Ddoc Source File

Diff File
diff
Expand All @@ -191,13 +203,14 @@ Fortran Source
f95
f03
f08
f2k
hf

F# Source
fs
fsi
fsx
fsscript
fsi F# Signature File
fsx F# Script File
fsscript F# Script
fsl
fsy
m Mathematica Module
Expand All @@ -221,9 +234,9 @@ Groovy Script
groovy
gvy
gy
gsh
gpp
grunit
gsh Groovy Shell
gpp Groovy Parallel Pattern
grunit GrUnit


HaXe Script
Expand Down Expand Up @@ -384,7 +397,7 @@ Texinfo File

VBScript
vbs
dsm
dsm Visual Studio Macro

Verilog HDL Source
v
Expand All @@ -402,14 +415,15 @@ Visual Basic
bas BASIC Source Code File
frm Visual Basic Text Form
cls Program Class File
ctl Visual Basic UserControl Object File
pag
ctl Visual Basic User Control Object File
pag Visual Basic Property Page
dsr Visual Basic Active Designer File
dob Visual Basic UserDocument
dob Visual Basic User Document

ANSI Art
nfo System Information File
diz Description in Zip File

https://en.wikipedia.org/wiki/List_of_filename_extensions
https://fileinfo.com/
https://www.file-extensions.org/
2 changes: 1 addition & 1 deletion src/EditLexers/backup/stlIDL.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ static KEYWORDLIST Keywords_IDL = {{
, NULL
}};

EDITLEXER lexIDL = { SCLEX_CPP, NP2LEX_IDL, EDITLEXER_HOLE(L"Interface Definition File"), L"idl; odl", &Keywords_IDL,
EDITLEXER lexIDL = { SCLEX_CPP, NP2LEX_IDL, EDITLEXER_HOLE(L"Interface Definition File"), L"idl; odl; midl", &Keywords_IDL,
{
EDITSTYLE_DEFAULT,
{ SCE_C_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlCPP.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ static KEYWORDLIST Keywords_CPP = {{
}};


EDITLEXER lexCPP = { SCLEX_CPP, NP2LEX_CPP, EDITLEXER_HOLE(L"C/C++ Source"), L"c; cpp; cxx; cc; h; hpp; hxx; hh; inl; pch; mm; xpm", &Keywords_CPP,
EDITLEXER lexCPP = { SCLEX_CPP, NP2LEX_CPP, EDITLEXER_HOLE(L"C/C++ Source"), L"c; cpp; cxx; cc; h; hpp; hxx; hh; inl; pch; idl; odl; midl; mm; xpm", &Keywords_CPP,
{
EDITSTYLE_DEFAULT,
{ MULTI_STYLE(SCE_C_WORD, SCE_C_2NDWORD, 0, 0), NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlD.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ NULL
}};


EDITLEXER lexD = { SCLEX_CPP, NP2LEX_D, EDITLEXER_HOLE(L"D Source"), L"d; di", &Keywords_D,
EDITLEXER lexD = { SCLEX_CPP, NP2LEX_D, EDITLEXER_HOLE(L"D Source"), L"d; di; dd", &Keywords_D,
{
EDITSTYLE_DEFAULT,
{ SCE_C_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlFortran.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ static KEYWORDLIST Keywords_Fortran = {{
}};


EDITLEXER lexFortran = { SCLEX_FORTRAN, NP2LEX_FORTRAN, EDITLEXER_HOLE(L"Fortran Source"), L"f; for; ftn; fpp; f90; f95; f03; f08; hf", &Keywords_Fortran,
EDITLEXER lexFortran = { SCLEX_FORTRAN, NP2LEX_FORTRAN, EDITLEXER_HOLE(L"Fortran Source"), L"f; for; ftn; fpp; f90; f95; f03; f08; f2k; hf", &Keywords_Fortran,
{
EDITSTYLE_DEFAULT,
{ SCE_F_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlJSON.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
}};


EDITLEXER lexJSON = { SCLEX_JSON, NP2LEX_JSON, EDITLEXER_HOLE(L"JSON Document"), L"json; har; ipynb; wxcp", &Keywords_JSON,
EDITLEXER lexJSON = { SCLEX_JSON, NP2LEX_JSON, EDITLEXER_HOLE(L"JSON Document"), L"json; har; ipynb; wxcp; jshintrc; eslintrc; jsonld", &Keywords_JSON,
{
EDITSTYLE_DEFAULT,
{ SCE_C_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlJava.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ NULL
}};


EDITLEXER lexJava = { SCLEX_CPP, NP2LEX_JAVA, EDITLEXER_HOLE(L"Java Source"), L"java; jad; aidl", &Keywords_Java,
EDITLEXER lexJava = { SCLEX_CPP, NP2LEX_JAVA, EDITLEXER_HOLE(L"Java Source"), L"java; jad; aidl; bsh", &Keywords_Java,
{
EDITSTYLE_DEFAULT,
{ SCE_C_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"fore:#0000FF" },
Expand Down
2 changes: 1 addition & 1 deletion src/EditLexers/stlRuby.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ static KEYWORDLIST Keywords_Ruby = {{
}};


EDITLEXER lexRuby = { SCLEX_RUBY, NP2LEX_RUBY, EDITLEXER_HOLE(L"Ruby Script"), L"rb; ruby; rbw; rake; rjs; podspec", &Keywords_Ruby,
EDITLEXER lexRuby = { SCLEX_RUBY, NP2LEX_RUBY, EDITLEXER_HOLE(L"Ruby Script"), L"rb; ruby; rbw; rake; rjs; gemspec; podspec", &Keywords_Ruby,
{
EDITSTYLE_DEFAULT,
{ SCE_RB_WORD, NP2STYLE_Keyword, EDITSTYLE_HOLE(L"Keyword"), L"bold; fore:#FF8000" },
Expand Down
27 changes: 16 additions & 11 deletions src/Styles.c
Original file line number Diff line number Diff line change
Expand Up @@ -1797,9 +1797,8 @@ static PEDITLEXER Style_GetLexerFromFile(HWND hwnd, LPCWSTR lpszFile, BOOL bCGIG
char tchText[256];
SendMessage(hwnd, SCI_GETTEXT, COUNTOF(tchText) - 1, (LPARAM)tchText);
StrTrimA(tchText, " \t\n\r");
if ((pLexNew = Style_SniffShebang(tchText)) != NULL) {
bFound = TRUE;
}
pLexNew = Style_SniffShebang(tchText);
bFound = pLexNew != NULL;
}

if (!bFound && StrCaseEqual(lpszExt, L"xml")) {
Expand Down Expand Up @@ -1830,6 +1829,15 @@ static PEDITLEXER Style_GetLexerFromFile(HWND hwnd, LPCWSTR lpszFile, BOOL bCGIG
}
}

// autoconf / automake
if (!bFound && StrCaseEqual(lpszExt, L"in") && pDotFile != NULL) {
WCHAR tchCopy[MAX_PATH];
lstrcpyn(tchCopy, lpszFile, COUNTOF(tchCopy));
PathRemoveExtension(tchCopy);
pLexNew = Style_GetLexerFromFile(hwnd, tchCopy, FALSE, NULL, NULL);
bFound = pLexNew != NULL;
}

if (!bFound && ((StrCaseEqual(lpszExt, L"conf") && StrNCaseEqual(lpszName, L"httpd", 5)) || StrCaseEqual(lpszExt, L"htaccess"))) {
pLexNew = &lexCONF;
bFound = TRUE;
Expand All @@ -1845,21 +1853,18 @@ static PEDITLEXER Style_GetLexerFromFile(HWND hwnd, LPCWSTR lpszFile, BOOL bCGIG
bFound = TRUE;
np2LexLangIndex = IDM_LANG_WEB_NET;
}
if (!bFound && StrRStrI(lpszFile, NULL, L".cmake.in")) {
pLexNew = &lexCMake;
bFound = TRUE;
}

// check associated extensions
if (!bFound) {
if ((pLexNew = Style_MatchLexer(lpszExt, FALSE)) != NULL) {
bFound = TRUE;
}
pLexNew = Style_MatchLexer(lpszExt, FALSE);
bFound = pLexNew != NULL;
}

// dot file
if (StrCaseEqual(lpszExt - 1, lpszName)) {
*pDotFile = TRUE;
if (pDotFile) {
*pDotFile = TRUE;
}
if (StrNEqual(lpszExt, L"bash", 4) || StrEqual(lpszExt, L"profile")) { // .bash_history, .bash_logout, .bash_profile, .bashrc, .profile
pLexNew = &lexBash;
bFound = TRUE;
Expand Down

0 comments on commit da010ca

Please sign in to comment.