Языки
Birchpad подсвечивает и сворачивает код 50 языков с помощью грамматик tree-sitter. Разбор идёт в фоне и обновляется по мере правки, поэтому большие файлы не тормозят набор.
Как определяется язык
Заголовок раздела «Как определяется язык»По порядку: выбор в меню Синтаксис, имя файла (Makefile, .bashrc), расширение, строка #! в начале (#!/usr/bin/env python3) и сама первая строка (<?xml). Язык можно задать и из командной строки: birchpad -lpython file.txt. Файлам больше files.large-file-limit-mb (по умолчанию 20 МБ) подсветка не включается, как в Notepad++.
Вложенные языки
Заголовок раздела «Вложенные языки»Один документ может содержать несколько языков, и каждый подсвечивается своей грамматикой: скрипты и стили в HTML и Svelte, блоки кода, разметка и front matter в Markdown, HTML вокруг PHP, шаблонные строки, регулярные выражения и JSDoc в JavaScript и TypeScript.
Свои языки
Заголовок раздела «Свои языки»Для языков, которых нет в списке, подключите пользовательский язык Notepad++ (UDL) — см. Свои языки и автодополнение.
Список языков
Заголовок раздела «Список языков»Идентификатор — это имя для ключа -l командной строки и для разделов [language.<id>] в темах.
| Язык | Идентификатор | Расширения |
|---|---|---|
| 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 |