Skip to main content

File Types and Extensions

This page provides a reference for how CSpell associates file extensions with file type IDs (also called languageId in configuration files for historical reasons).

Understanding File Type Ids

Terminology Note

languageId: refers to file types (like javascript, python, markdown), not spoken languages (like English, German or Spanish). For historical reasons languageId was chosen to match VSCode's Language Identifiers in meaning.

Terminology Note

In CSpell configuration files, the field is called languageId for historical reasons (to match VSCode's convention). However, this refers to file types (like javascript, python, markdown), not spoken languages (like English, German or Spanish).

How CSpell Determines File Types

CSpell uses file extensions and filenames to determine the file type, which then influences:

  1. Which dictionaries are enabled
  2. Which patterns and rules apply
  3. Whether the file should be spell-checked

Usage Examples

Using Overrides

Force a specific file type for certain file patterns:

overrides:
- filename: "**/*.xyz"
languageId: javascript # Treat .xyz files as JavaScript

Using Language Settings

Apply specific settings based on file type:

languageSettings:
- languageId: python,javascript
dictionaries:
- html
- lorem-ipsum

Supported File Types

The table below shows the mapping between file extensions/filenames and their associated file type Ids.

Showing 125 of 125 file types
File Type ID
Description
Filenames
Extensions
ada
-
-
.adb, .ads
apiblueprint
-
-
.apib, .apiblueprint
argdown
-
-
.ad, .adown, .argdn, .argdown
asciidoc
-
-
.adoc, .asc, .asciidoc
bat
-
-
.bat, .cmd
bazel
-
-
.bazel, .bzl
bibtex
-
-
.bib
bicep
-
-
.bicep
c
-
-
.c, .i
cache_files
-
.DS_Store, .cspellcache, .eslintcache
clojure
-
-
.clj, .cljc, .cljs, .cljx, .clojure, .edn
cmake
-
CMakeLists.txt
.cmake
codeowners
-
codeowners
coffeescript
-
-
.coffee, .cson, .iced
cpp
-
-
.c++, .c++m, .cc, .ccm, .cpp, .cppm, .cxx, .cxxm, .h, .h++, .h.in, .hh, .hpp, .hpp.in, .hxx, .ii, .inl, .ino, .ipp, .ixx, .mm, .tpp, .txx
cpp_embedded_latex
-
-
csharp
-
-
.cake, .cs, .csx
css
-
-
.css
cuda-cpp
-
-
.cu, .cuh
dart
-
-
.dart
dhall
-
-
.dhall
diff
-
-
.diff, .patch, .rej
dockercompose
-
*docker*compose*.yaml, *docker*compose*.yml, compose.*.yaml, compose.*.yml, compose.yaml, compose.yml
dockerfile
-
*.Dockerfile.*, Containerfile, Containerfile.*, Dockerfile, Dockerfile.*, Dockerfile.dev, dockerfile
.containerfile, .dockerfile
elisp
-
-
.el
elixir
-
-
.ex, .exs
elm
-
-
.elm
erb
-
-
.erb, .html.erb, .rhtml
fsharp
-
-
.fs, .fsi, .fsscript, .fsx
git-commit
-
COMMIT_EDITMSG, MERGE_MSG
git-rebase
-
git-rebase-todo
github-issues
-
-
.github-issues
go
-
-
.go
godot
-
-
.gd, .godot, .tres, .tscn
gradle
-
-
.gradle
groovy
-
Jenkinsfile, Jenkinsfile*
.gradle, .groovy, .gvy, .jenkinsfile, .nf
haml
-
-
.haml
handlebars
-
-
.handlebars, .hbs, .hjs
haskell
-
-
.hs, .lhs
haxe
-
-
.hx
hlsl
-
-
.cginc, .compute, .fx, .fxh, .hlsl, .hlsli, .psh, .vsh
html
-
-
.asp, .aspx, .ejs, .htm, .html, .jshtm, .jsp, .mdoc, .rhtml, .shtml, .volt, .vue, .xht, .xhtml
ignore
-
.*ignore
.git-blame-ignore-revs, .gitignore, .gitignore_global, .npmignore
ini
-
-
.conf, .ini
jade
-
-
.jade, .pug
java
-
-
.jav, .java
javascript
-
jakefile
.cjs, .es6, .js, .mjs, .pac
javascriptreact
-
-
.jsx
jinja
-
-
.j2, .jinja, .jinja2
json
-
.watchmanconfig, composer.lock
.babelrc, .bowerrc, .code-profile, .css.map, .eslintrc, .geojson, .har, .ipynb, .js.map, .jscsrc, .jshintrc, .jslintrc, .json, .jsonc, .jsonld, .ts.map, .tsbuildinfo, .vuerc, .webmanifest
jsonc
-
.babelrc.json, .code-workspace, .devcontainer.json, .ember-cli, argv.json, babel.config.json, devcontainer.json, extensions.json, jsconfig-*.json, jsconfig.*.json, jsconfig.json, keybindings.json, launch.json, profiles.json, settings.json, tasks.json, tsconfig-*.json, tsconfig.*.json, tsconfig.json, typedoc.json
.babelrc, .code-workspace, .color-theme.json, .eslintrc, .eslintrc.json, .hintrc, .icon-theme.json, .jsfmtrc, .jshintrc, .jsonc, .language-configuration.json, .swcrc
jsonl
-
-
.jsonl
jsx-tags
-
-
julia
-
-
.jl
juliamarkdown
-
-
.jmd
jungle
-
-
.jungle
kotlin
-
-
.kt
latex
-
-
.ctx, .ltx, .tex
less
-
-
.less
lisp
-
-
.fasl, .l, .lisp, .lsp
literate haskell
-
-
.lhs
lock
-
Cargo.lock, berksfile.lock, composer.lock, package-lock.json
.lock
log
-
*.log.?
.log
lua
-
-
.lua
makefile
-
GNUmakefile, Makefile, OCamlMakefile, makefile
.mak, .mk
map
-
-
.map, .css.map, .ts.map, .js.map
markdown
-
-
.markdn, .markdown, .md, .mdown, .mdtext, .mdtxt, .mdwn, .mkd, .workbook
markdown_latex_combined
-
-
markdown-math
-
-
mdx
-
-
.mdx
monkeyc
-
-
.mb, .mc
mustache
-
-
.mst, .mu, .mustache, .stache
nix
-
-
.nix
nunjucks
-
-
.nj, .njk, .nunj, .nunjs, .nunjucks, .tmpl, .tpl
objective-c
-
-
.m
objective-cpp
-
-
.mm
ocaml
-
-
.eliom, .eliomi, .ml, .mli, .mll, .mly
pdf
-
-
.pdf
pem
-
-
.pem, .private-key.pem
pem-private-key
-
-
.private-key.pem
perl
-
-
.PL, .pl, .pm, .pod, .psgi, .t
perl6
-
-
.nqp, .p6, .pl6, .pm6
php
-
-
.ctp, .php, .php4, .php5, .phtml
plaintext
-
-
.txt
powershell
-
-
.ps1, .psd1, .psm1, .psrc, .pssc
properties
-
.env, gitconfig
.cfg, .conf, .directory, .editorconfig, .gitattributes, .gitconfig, .gitmodules, .npmrc, .properties, .repo
protobuf
-
-
.proto, .txtpb, .textproto, .textpb, .pbtxt
puppet
-
-
.puppet
purescript
-
-
.purs
python
-
SConscript, SConstruct
.cpy, .gyp, .gypi, .ipy, .py, .pyi, .pyt, .pyw, .rpy
r
-
-
.R, .r, .rhistory, .rprofile, .rt
raku
-
-
.nqp, .p6, .pl6, .pm6, .raku, .rakudoc, .rakumod, .rakutest
razor
-
-
.cshtml, .razor
rescript
-
-
.res, .resi
restructuredtext
-
-
.rst
rsa
-
id_rsa, id_rsa.pub
.pub
ruby
-
Gemfile, appfile, appraisals, berksfile, berksfile.lock, brewfile, capfile, cheffile, dangerfile, deliverfile, fastfile, gemfile, guardfile, gymfile, hobofile, matchfile, podfile, puppetfile, rakefile, rantfile, scanfile, snapfile, thorfile, vagrantfile
.erb, .gemspec, .podspec, .rake, .rb, .rbi, .rbx, .rjs, .ru
rust
-
-
.rs
sass
-
-
.sass
scala
-
-
.sbt, .sc, .scala
scss
-
-
.scss
search-result
-
-
.code-search
shaderlab
-
-
.cginc, .shader
shellscript
-
.env.*, .envrc, .hushlogin, APKBUILD, PKGBUILD, bashrc_Apple_Terminal, zlogin, zlogout, zprofile, zshenv, zshrc, zshrc_Apple_Terminal
.Xsession, .bash, .bash_aliases, .bash_login, .bash_logout, .bash_profile, .bashrc, .csh, .cshrc, .ebuild, .eclass, .fish, .install, .ksh, .profile, .sh, .tcshrc, .xprofile, .xsession, .xsessionrc, .yash_profile, .yashrc, .zlogin, .zlogout, .zprofile, .zsh, .zsh-theme, .zshenv, .zshrc
snippets
-
-
.code-snippets
sql
-
-
.dsql, .sql
stylus
-
-
.styl
svelte
-
-
.svelte
swift
-
-
.swift
terraform
-
-
.hcl, .tf, .tf.json, .tfvars
tex
-
-
.bbx, .cbx, .cls, .sty
tfvars
Terraform Variables
-
.tfvars
todo
-
todo
toml
-
Cargo.lock, Cargo.toml
.toml
typescript
-
-
.cts, .mts, .ts
typescriptreact
-
-
.tsx
typst
-
-
.typst
vala
-
-
.vala
vb
-
-
.bas, .brs, .vb, .vba, .vbs
vue
-
-
.vue
xml
-
-
.ascx, .atom, .axaml, .axml, .bpmn, .config, .cpt, .csl, .csproj, .csproj.user, .dita, .ditamap, .dtd, .dtml, .ent, .fsproj, .fxml, .iml, .isml, .jmx, .launch, .menu, .mod, .mxml, .nuspec, .opml, .owl, .proj, .props, .pt, .publishsettings, .pubxml, .pubxml.user, .rbxlx, .rbxmx, .rdf, .rng, .rss, .shproj, .storyboard, .svg, .targets, .tld, .tmx, .vbproj, .vbproj.user, .vcxproj, .vcxproj.filters, .wsdl, .wxi, .wxl, .wxs, .xaml, .xbl, .xib, .xlf, .xliff, .xml, .xoml, .xpdl, .xsd, .xul
xsl
-
-
.xsl, .xslt
yaml
-
-
.cff, .eyaml, .eyml, .yaml, .yaml-tmlanguage, .yaml-tmpreferences, .yaml-tmtheme, .yml
zig
Zig programming language
-
.zig
zon
Zig programming language package file
-
.zon

Total: 125 file types