Attention 💥
Support since v0.2.17 .
The language detection system is used for include app to provide accurate syntax highlighting based on file paths.
The language detection system intelligently identifies programming languages from file paths using a sophisticated three-tier matching system with clear precedence rules:
Priority Method Example Description
1st (Highest)Exact filename Dockerfile → dockerfilePerfect filename matches
2nd File extension script.js → javascriptExtension-based detection
3rd (Lowest)Wildcard pattern Dockerfile.prod → dockerfileFlexible pattern matching
Language definitions are stored in src/assets/config/languages.json . Each language entry supports multiple matching strategies.
{
"name": "dockerfile",
"extensions": [".dockerfile"],
"filenames": ["Dockerfile", "dockerfile", "Containerfile", "Dockerfile.*", "dockerfile.*", "*.dockerfile"]
}
Property Type Purpose Example
nameString Language identifier for syntax highlighting "javascript"
extensionsArray File extensions (with dots) [".js", ".jsx"]
filenamesArray Exact filenames and wildcard patterns ["Dockerfile", "Makefile.*", "*.config.js"]
Wildcard Regex Description Example Pattern Matches
*.*Zero or more characters Dockerfile.*Dockerfile.base, Dockerfile.production
?.Exactly one character test?.txttest1.txt, testa.txt
Filename Result Reason
Dockerfiledockerfile✅ Exact match (non-wildcard entry)
Dockerfile.basedockerfile🔍 Pattern: Dockerfile.* (wildcard entry)
Dockerfile.productiondockerfile🔍 Pattern: Dockerfile.* (wildcard entry)
dockerfile.devdockerfile🔍 Pattern: dockerfile.* (wildcard entry)
web.dockerfiledockerfile🔍 Pattern: *.dockerfile (wildcard entry)
api.dockerfiledockerfile🔍 Pattern: *.dockerfile (wildcard entry)
Dockerfile.jsjavascript📁 Extension: .js (overrides pattern)
Filename Result Reason
Makefilemakefile✅ Exact match (non-wildcard entry)
Makefile.localmakefile🔍 Pattern: Makefile.* (wildcard entry)
Makefile.ammakefile✅ Exact match (non-wildcard entry)
custom.makefilemakefile📁 Extension: .makefile
build.mkmakefile📁 Extension: .mk
Filename Result Reason
.bashrcshell✅ Exact match (non-wildcard entry)
.zshrcshell✅ Exact match (non-wildcard entry)
custom.bashrcshell🔍 Pattern: *.bashrc (wildcard entry)
my.profileshell🔍 Pattern: *.profile (wildcard entry)
script.shshell📁 Extension: .sh
Filename Result Reason
package.jsonjson📁 Extension: .json
tsconfig.jsonjson📁 Extension: .json
webpack.config.jsjavascript📁 Extension: .js
.eslintrc.jsonjson📁 Extension: .json