Skip to content

Instantly share code, notes, and snippets.

@Daeraxa
Last active October 10, 2022 00:51
Show Gist options
  • Save Daeraxa/33b43f73d86b84a33d49e8eced314ed5 to your computer and use it in GitHub Desktop.
Save Daeraxa/33b43f73d86b84a33d49e8eced314ed5 to your computer and use it in GitHub Desktop.
Comparison of default packages in Pulsar

Default language comparison

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 -

Combined default languages (Pulsar packages first)

  • 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 ?

Suggestions

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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment