Most popular (https://pypl.github.io/PYPL.html & https://www.tiobe.com/tiobe-index/)
Language | Atom/Pulsar | VSCode | Brackets | Sublime | Lapce | Geany | Xed | Kate | Helix |
---|---|---|---|---|---|---|---|---|---|
Python | Y | Y | Y | Y | Y | Y | Y | Y | Y |
Java | Y | Y | Y | Y | Y | Y | Y | Y | Y |
JavaScript | Y | Y | Y | Y | Y | Y | Y | Y | Y |
C# | Y | Y | Y | Y | Y | Y | Y | Y | Y |
C | Y | Y | Y | Y | Y | Y | Y | Y | Y |
C++ | Y | Y | Y | Y | Y | Y | Y | Y | Y |
PHP | Y | Y | Y | Y | Y | Y | Y | Y | Y |
R | N | Y | N | Y | N | Y | Y | Y | N |
TypeScript | Y | Y | Y | Y | Y | N | Y | Y | Y |
Go | Y | Y | Y | Y | Y | Y | Y | Y | Y |
Swift | N | Y | Y | N | Y | N | Y | Y | Y |
Objective-C | Y | Y | Y | Y | N | Y | Y | Y | - |
Kotlin | N | N | Y | N | N | N | Y | Y | Y |
Matlab | N | N | N | Y | N | Y | Y | Y | N |
Rust | Y | Y | N | Y | Y | Y | Y | Y | Y |
Ruby | Y | Y | Y | Y | Y | Y | Y | Y | Y |
VBA | N | Y | Y | N | N | N | Y | N | N |
Dart | N | Y | Y | N | Y | N | Y | Y | Y |
Ada | N | N | N | N | N | Y | Y | Y | N |
Scala | N | N | Y | Y | N | N | Y | Y | Y |
Visual Basic | N | Y | Y | N | N | N | Y | N | N |
Lua | N | Y | Y | Y | N | Y | Y | Y | Y |
Abap | N | N | N | N | N | N | Y | Y | N |
Julia | N | Y | N | N | Y | Y | Y | Y | Y |
Groovy | N | Y | Y | Y | N | N | Y | Y | N |
Cobol | N | N | N | N | N | Y | Y | N | N |
Haskell | N | N | Y | Y | Y | Y | Y | Y | Y |
Perl | Y | Y | Y | Y | N | Y | Y | Y | Y |
Delphi/Pascal | N | N | N | Y | N | Y | Y | Y | - |
Fortran | N | N | N | N | N | Y | Y | Y | - |
- Zed included for both supported languages and community suggested ones to get an idea of what people want
Language | Pulsar Lang (packages/language-x/grammars/y.cson) | Pulsar tree-sitter | VSCode | Brackets | Sublime | Lapce | Zed |
---|---|---|---|---|---|---|---|
(Plain Text) | text/plain text | N/A | Y | Y | Y | Y | Y |
C | c/c | c/tree-sitter-c | Y | Y | Y | Y | Y |
C# | csharp/csharp | N/A | Y | Y | Y | Y | N |
C# Cake File | csharp/cake | N/A | Y | ? | ? | ? | N |
C# Script File | csharp/csx | N/A | Y | ? | ? | ? | N |
C++ | c/c++ | c/tree-sitter-cpp | Y | Y | Y | Y | Y |
Clojure | clojure/clojure | N/A | Y | Y | Y | N | N |
CoffeeScript | coffee-script/coffeescript | N/A | Y | Y | N | N | N |
CoffeeScript (Literate) | coffee-script/coffeescript (literate) | N/A | N | ? | N | N | N |
CSS | css/css | css/tree-sitter-css | Y | Y | Y | Y | N |
EJS | N/A | html/tree-sitter-ejs | Y | Y | ? | ? | N |
ERB | N/A | html/tree-sitter-erb | Y | Y | ? | ? | N |
Flow JavaScript | N/A | typescript/tree-sitter-flow | N | N | ? | N | N |
Gemfile | ruby/gemfile | N/A | Y | Y | Y | Y | N |
Git Commit Message | git/git commit message | N/A | Y | N | Y | N | N |
Git Config | git/git config | N/A | ? | N | Y | N | N |
Git Rebase Message | git/git rebase message | N/A | Y | N | Y | N | N |
GitHub Markdown | gfm/gfm | N/A | Y | Y | Y | Y | Y |
Go | go/go | go/tree-sitter-go | Y | Y | Y | Y | Y |
Go Checksum File | go/gosum | N/A | ? | ? | ? | Y | N |
Go Module File | go/gomod | N/A | ? | ? | ? | ? | N |
Go Template | go/gotemplate | N/A | ? | ? | ? | ? | N |
HTML | html/html | html/tree-sitter-html | Y | Y | Y | Y | N |
HTML (Go) | go/gohtml | N/A | ? | ? | ? | ? | N |
HTML (Mustache) | mustache/mustache | N/A | N | ? | N | N | N |
HTML (Rails) | ruby-on-rails/html (rails) | N/A | N | ? | Y | N | N |
HTML (Ruby - ERB) | ruby/html (ruby - erb) | N/A | Y | ? | ? | ? | N |
Java | java/java | java/tree-sitter-java | Y | Y | Y | Y | ? |
Java Properties | java/javaproperties | N/A | Y | ? | Y | ? | N |
JavaScript | javascript/javascript | javascript/tree-sitter-javascript | Y | Y | Y | Y | Y |
JavaScript (Rails) | ruby-on-rails/javascript (rails) | N/A | N | N | Y | N | N |
JavaScript (RegExp) | javascript/regular expressions (javascript) | javascript/tree-sitter-regex | ? | ? | ? | ? | N |
JavaServer Pages | java/java server pages (jsp) | N/A | ? | ? | ? | ? | N |
JSDoc | javascript/jsdoc | javascript/tree-sitter-jsdoc | Y | ? | ? | ? | N |
JSON | json/json | json/tree-sitter-json | Y | Y | Y | Y | Y |
JUnit Test Report | java/JUnit Test Report | N/A | ? | ? | ? | ? | N |
Less | less/less | N/A | Y | Y | N | N | N |
Makefile | make/makefile | N/A | Y | N | Y | N | N |
Objective-C | objective-c/objective-c | N/A | Y | Y | Y | N | N |
Objective-C++ | objective-c/objective-c++ | N/A | Y | ? | Y | N | N |
Perl | perl/perl | N/A | Y | Y | Y | N | N |
Perl 6 | perl/perl 6 | N/A | Y | ? | ? | N | N |
PHP | php/html | N/A | Y | Y | Y | Y | ? |
Property List (Old-Style) | property-list/property list (old-style) | N/A | ? | ? | ? | N | N |
Property List (XML) | property-list/property list (xml) | N/A | ? | ? | ? | N | N |
Python | python/python | ruby/tree-sitter-python | Y | Y | Y | Y | Y |
Python Traceback | python/python-traceback | N/A | ? | ? | ? | ? | ? |
Regular Expressions (Python) | python/regular expressions (python) | N/A | ? | ? | ? | ? | ? |
Ruby | ruby/ruby | ruby/tree-sitter-ruby | Y | ? | Y | Y | N |
Ruby on Rails | ruby-on-rails/ruby on rails | N/A | N | N | Y | N | N |
Ruby on Rails (RJS) | ruby-on-rails/rjs | N/A | N | N | ? | N | N |
Rust | N/A | rust-bundled/tree-sitter-rust | Y | N | Y | Y | Y |
Sass | sass/sass | N/A | N | Y | N | N | N |
SassDoc | sass/sassdoc | N/A | N | ? | N | N | N |
SCSS | sass/scss | N/A | Y | Y | N | Y | N |
Shell Script | shellscript/shell-unix-bash | shellscript/tree-sitter-bash | Y | Y | Y | Y | N |
Shell Session | shellscript/shell-session | N/A | N | N | ? | ? | N |
SQL | sql/sql | N/A | Y | Y | Y | N | Y |
SQL (Mustache) | mustache/sql with mustaches | N/A | N | N | N | N | N |
SQL (Rails) | ruby-on-rails/sql (rails) | N/A | N | N | Y | N | N |
Strings File (Objective-C) | objective-c/strings file | N/A | ? | ? | ? | N | N |
TOML | toml/toml | N/A | N | N | N | Y | Y |
TypeScript | N/A | typescript/tree-sitter-typescript | Y | Y | Y | Y | Y |
TypeScriptReact | N/A | typescript/tree-sitter-tsx | Y | Y | Y | Y | Y |
XML | xml/xml | N/A | Y | Y | Y | N | N |
XSL | xml/xsl | N/A | Y | ? | Y | N | N |
YAML | yaml/yaml | N/A | Y | Y | Y | Y | N |
Batch | N | N | Y | N | Y | N | N |
BibTex | N | N | Y | N | Y | ? | N |
Binary | N | N | Y | N | N | N | N |
CUDA C++ | N | N | Y | N | N | N | N |
Dart | N | N | Y | Y | N | Y | ? |
Diff | ? | ? | Y | Y | N | N | N |
Docker (Compose) | N | N | Y | N | N | ? | N |
Docker (Dockerfile) | N | N | Y | N | N | Y | N |
F# | N | N | Y | N | N | N | ? |
Groovy | N | N | Y | Y | Y | N | N |
HandleBars | N | N | Y | Y | N | N | N |
HLSL | N | N | Y | N | N | N | N |
Ignore (Git) | N | N | Y | N | ? | N | N |
Ini | N | N | Y | N | N | N | N |
JSON with Comments | N | N | Y | ? | ? | ? | N |
Julia | N | N | Y | N | N | Y | N |
Julia Markdown | N | N | Y | N | N | ? | N |
LaTeX | N | N | Y | N | Y | Y | N |
Lua | N | N | Y | Y | Y | N | ? |
PowerShell | N | N | Y | N | N | N | N |
Pug (Jade) | N | N | Y | Y | N | N | N |
R | N | N | Y | N | Y | N | N |
Razor | N | N | Y | N | N | N | N |
reStructuredText | N | N | Y | N | Y | N | N |
ShaderLab | N | N | Y | N | N | N | N |
Swift | N | N | Y | Y | N | Y | ? |
TeX | N | N | Y | N | Y | ? | N |
Visual Basic | N | N | Y | Y | N | N | N |
Haskell | N | N | N | Y | N | Y | ? |
Haxe | N | N | N | Y | N | Y | N |
Kotlin | N | N | N | Y | N | N | ? |
RDF Turtle | N | N | N | Y | N | N | N |
Scala | N | N | N | Y | Y | N | ? |
Stylus | N | N | N | Y | N | N | N |
SVG | N | N | N | Y | N | N | N |
ActionScript | N | N | N | N | Y | N | N |
AppleScript | N | N | N | N | Y | N | N |
ASP | N | N | N | N | Y | N | N |
D | N | N | N | N | Y | N | N |
DTD | N | N | N | N | Y | N | N |
Erlang | N | N | N | N | Y | N | N |
Graphviz (DOT) | N | N | N | N | Y | N | N |
Lisp | N | N | N | N | Y | N | N |
Matlab | N | N | N | N | Y | N | N |
OCaml | N | N | N | N | Y | Y | ? |
Regex | N | N | N | N | Y | N | N |
Tcl | N | N | N | N | Y | N | N |
Textile | N | N | N | N | Y | N | N |
Elixir | N | N | N | N | N | Y | Y |
Elm | N | N | N | N | N | Y | N |
Glimmer | N | N | N | N | N | Y | N |
Hare | N | N | N | N | N | Y | N |
Hcl | N | N | N | N | N | Y | N |
Nix | N | N | N | N | N | Y | N |
.QL | N | N | N | N | N | Y | N |
Svelte | N | N | N | N | N | Y | N |
WGSL | N | N | N | N | N | Y | N |
Zig | N | N | N | N | N | Y | ? |
Vala | N | N | N | N | N | N | ? |
Nushell | N | N | N | N | N | N | ? |
Deno | N | N | N | N | N | N | ? |
Svelte | N | N | N | N | N | N | ? |
Astro | N | N | N | N | N | N | ? |
Haxe | N | N | N | N | N | N | ? |
Vue | N | N | N | N | N | N | ? |
Flutter | N | N | N | N | N | N | ? |
From reviewing the above it does seem that Pulsar is somewhat lacking in default languages that people may expect to see as default in a modern text editor.
I mostly base the comparisons here on VSCode, Brackets, Sublime and Lapce as the most "modern", in-development text-editors-come-IDEs that have an emphasis on good "out of the box" usability as well as extensibility.
The older and distro "default" editors like Geany, Xed, Kate, Vim are taken into account but often include a huge number of older and mostly obsolete languages which would be better served by an optional package in Pulsar.
Editors like Helix, Neovim really cater to a slightly different user base so have also not been my main focus.
Zed is an interesting point of comparison as it in very early development and has support for the most obvious languages but is also a nice case to see what the community are currently asking for to get an idea of what people want out of a modern editor.
So the most obvious inclusions for Pulsar (that are currently not default) to me would be:
- Swift
- Dart
- Kotlin
- Groovy
- Lua
- Julia
- Haskell
- Dockerfile (+ Compose)
To extend to more "nice to haves"
- HandleBars
- Haxe
- Scala
- OCaml
- R
- Matlab
- Visual basic
- TeX (+ LaTeX, BibTeX)