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.
How the language is chosen
Section titled “How the language is chosen”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++.
Embedded languages
Section titled “Embedded languages”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.
Your own languages
Section titled “Your own languages”For a language that is not listed, add a Notepad++ User Defined Language — see User languages and auto-completion.
All languages
Section titled “All languages”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 |