Skip to content

Languages

Birchpad highlights and folds 50 languages with tree-sitter grammars. Parsing runs in the background and follows each edit, so large files do not slow typing down.

In this order: the choice in the Language menu, the file name (Makefile, .bashrc), the extension, a #! first line (#!/usr/bin/env python3) and the first line itself (<?xml). The command line can set it too: birchpad -lpython file.txt. Files larger than files.large-file-limit-mb (20 MB by default) open without highlighting, as in Notepad++.

A document may hold several languages, each highlighted by its own grammar: scripts and styles in HTML and Svelte, code blocks, inline formatting and front matter in Markdown, HTML around PHP, tagged templates, regular expressions and JSDoc in JavaScript and TypeScript.

For a language that is not listed, add a Notepad++ User Defined Language — see User languages and auto-completion.

The id is the name for the -l command-line option and for [language.<id>] tables in themes.

Language Id Extensions
Assembly asm .asm .s .nasm
Bash bash .sh .bash .zsh .ksh .command
Batch batch .bat .cmd .nt
C c .c .lex
C# cs .cs .csx
C++ cpp .cpp .cxx .cc .c++ .h .hh .hpp .hxx .h++ .ino .ipp .tpp .inl
CMake cmake .cmake
CSS css .css
Dart dart .dart
Diff diff .diff .patch
Dockerfile dockerfile .dockerfile .containerfile
Elixir elixir .ex .exs
Erlang erlang .erl .hrl .escript
Go go .go
GraphQL graphql .graphql .graphqls .gql
Groovy groovy .groovy .gradle .gvy .gy .gsh
Haskell haskell .hs .hsc
HCL hcl .hcl .tf .tfvars .nomad
HTML html .html .htm .shtml .shtm .xhtml .xht .hta
INI ini .ini .inf .url .wer .cfg .desktop
Java java .java
JavaScript javascript .js .mjs .cjs .jsx .jsm
JSON json .json .jsonc .json5 .geojson .webmanifest .babelrc .eslintrc
Kotlin kotlin .kt .kts
Lua lua .lua
Makefile makefile .mak .mk
Markdown markdown .md .markdown .mdown .mkd .mkdn
nginx nginx .nginx
Nix nix .nix
Objective-C objc .m .mm
Pascal pascal .pas .pp .dpr .dpk .lpr
PHP php .php .php3 .php4 .php5 .phps .phpt .phtml
PowerShell powershell .ps1 .psm1 .psd1
Properties properties .properties
Protocol Buffers proto .proto
Python python .py .pyw .pyi .pyx .pxd .gyp .bzl .wsgi
R r .r
Ruby ruby .rb .rbw .rake .gemspec .ru .erb
Rust rust .rs
Scala scala .scala .sc .sbt
Solidity solidity .sol
SQL sql .sql .ddl .dml
Svelte svelte .svelte
Swift swift .swift
TOML toml .toml
TypeScript typescript .ts .mts .cts
TypeScript JSX tsx .tsx
XML xml .xml .xaml .xsl .xslt .xsd .xul .kml .svg .mxml .xsml .wsdl .xlf .xliff .xbl .sxbl .sitemap .gml .gpx .plist .vcproj .vcxproj .csproj .vbproj .fsproj .props .targets .nuspec .resx .manifest .config .rss .atom
YAML yaml .yml .yaml
Zig zig .zig .zon