Skip to content

Releases: pulsar-edit/pulsar

v1.124.0

16 Dec 06:40
Compare
Choose a tag to compare

Pulsar v1.124.0: Happy Year-End Festivities!

We hope you're having a relaxing and wholesome holiday season! We've been kicking back a bit ourselves, but that doesn't mean we don't have any new updates to share with you!

Whether you're celebrating end-of-year holidays in the cold of Winter, or the heat of Summer (depending on what hemisphere you live in!) Pulsar is here to warm your heart with another Regular release.

We've made it possible for spellcheck to activate in more fine-grained scopes, and turned it on for code comments by default. (Now with fewer typos in comments!) If you'd like to disable spell checking in comments, navigate to Settings > spell-check > grammars and remove source comment, or delete source comment from spell-check.grammars in your config file.

We've tweaked and refined some aspects of our Tree-sitter usage, as usual. With a fix for C++, and another under-the-hood fix as well.

We've ensured that keybinds should show for every package in settings-view, fixing a bug that prevented any keybinds from showing when keybinds were available for OSes/platforms other than the one currently in use.

We've cleaned up an outdated error message that you might see when moving items to the trash on Linux.

And we've engaged in a bit of maintenance around our CI operations as usual, and made building Pulsar a bit faster by skipping generation of blockmap files that we currently don't make use of.

As always, a huge thank you to our community, contributors, and donations.
Happy coding, and see you amongst the stars.
- The Pulsar Team


  • Enhanced spellcheck to allow spellchecking on sections of a buffer. Making it possible to spellcheck comments within code, which has been enabled by default.
  • Tree-sitter fixes and enhancements for language-c.
  • Updated error message received when deleting a file in Linux to be more accurate.
  • Fixed error that could cause some keymaps to not appear under a package in settings-view.

Pulsar

  • CI: Add build dependencies for Linux 'test bins' job @DeeDeeG
  • Tree-sitter rolling fixes, 1.124 edition @savetheclocktower
  • Fix Linux trash error message @mauricioszabo
  • electron-builder: Don't create differential update blockmaps @DeeDeeG
  • CI: Update Cirrus Rolling release upload token @DeeDeeG

spell-check

  • [spell-check] Allow the user to whitelist sections of a buffer for spellchecking on a per-language basis. @savetheclocktower

settings-view

v1.123.0

22 Nov 02:56
Compare
Choose a tag to compare

Pulsar 1.123.0: Is It Winter Yet?!

This time around there's been a big focus on bug fixes and compatibility:
ensuring Linux users are able to load the new SQL State Storage when starting Pulsar from a self-contained binary, and fixing a regression with Electron 12 compatibility for moving items to the trash.
But don't fret, there's still a healthy mix of new features, such as the symbols-view package allowing project-wide symbol search from multiple providers, as well as our consistent improvements to the new Tree-sitter implementation.

All-in-all we hope there's something for everyone this release.
As always, a huge thank you to our community, contributors, and donations.
Happy coding, and see you amongst the stars.

  • The Pulsar Team

  • Fixed SQL State Storage not loading when starting Pulsar from a self-contained binary like appImage, tar.gz, etc.
  • [symbols-view] Allow project-wide symbol search to consider results from more than one provider.
  • Tree-sitter fixes and enhancements for hyperlinks, C, and shell scripts.
  • Restore use of shell.moveItemToTrash API in tree-view, for Electron 12 compatibility.

Pulsar

v1.122.0

19 Oct 20:45
Compare
Choose a tag to compare

Pulsar 1.122.0: Frightfully Good

Greetings! In today's Pulsar release, we have:

  • Bug-fixes, refactors and enhancements for Tree-sitter, mostly focused on C and PHP. (shout out to @savetheclocktower for these monthly enhancements!)
  • Launcher improvements:
    • A fix for the pulsar and ppm bins being removed without being replaced upon upgrading via the .rpm package (shout out to @am97, thank you for this fix!)
    • The AppImage now supports more launch flags, such as --wait, and -p --version also works to print the ppm version info (shout out to @savetheclocktower for multiple PRs leading up to this, and this PR itself.)
  • A bug involving an error in autocomplete-plus is avoided (shout out to @Digitalone1)
  • SQL state storage implementation for the app is available by opt-in (shout out to @mauricioszabo)
  • Replacing a deprecated Electron API call shell.moveItemToTrash (shout out to @savetheclocktower once again!)

Happy coding, and see you amongst the stars.
- Pulsar team


  • Added a SQL State Storage alternative to IndexedDB (opt-in, off by default).
  • Repackaged the AppImage so it uses our launcher script internally (supports more CLI/launch flags).
  • [language-php] Highlighted “null-safe” property access correctly.
  • [language-c] Scoped template delimiters properly in C++.
  • [language-c] Consolidated common highlighting queries between the C and C++ grammars for more consistency in syntax highlighting.
  • Fixed incorrect behavior in certain scenarios for “Fold at Indent Level X” commands.
  • Fixed exception when resolving divided folds (e.g., #ifdefs in C/C++).
  • Avoided "length of null" error in autocomplete-plus for the PHP Tree-sitter grammar.
  • Preserved /usr/bin/pulsar and /usr/bin/ppm on RPM updates.
  • [tree-view] Moved to a more modern API for file removal in preparation for an Electron upgrade.

Pulsar

v1.121.0

19 Sep 01:51
Compare
Choose a tag to compare

Pulsar v1.121.0: CLI improvements? Now you're speaking my language.

For this edition of Pulsar, along with the usual bug fixes, we've particularly focused on CLI usage and up-to-date language support.

On Linux and macOS, the pulsar -p command (via the pulsar.sh launcher script) will now invoke ppm directly without having to launch Pulsar first. (We shipped the equivalent enhancement for Windows in the last release.)

The Linux CLI has some further enhancements. It’s now much better at detecting where your Pulsar installation is on disk; this should help those who have extracted Pulsar from the .tar.gz tarball distribution. (Building on this, we hope we can make CLI usage easier for our AppImage users in the next release.)

Speaking of the CLI: we’ve fixed an issue with ppm that was affecting only users with Apple Silicon Macs. An old, hard-coded value in ppm, from before Apple Silicon existed, broke several community packages with native C/C++ module dependencies -- x-terminal-reloaded and autocomplete-paths, to name just two examples. Before now, these packages wouldn’t install correctly on Apple Silicon macs, and would need manual fixing from the terminal. But now, those packages will build and rebuild successfully on your ARM64 machine.

Meanwhile on Windows, the ability to add Pulsar to the PATH has been moved from the settings menu to the installer. This approach should work much more reliably, and is able to clean up the user's PATH during an uninstall.

Inside the editor we’ve got a number of improvements to language grammars. Our underlying web-tree-sitter library has been bumped to the latest stable version, as have our grammars for CSS, Markdown, JavaScript, TypeScript, and HTML.

Under the hood, there’s been a major refactor of how Tree-sitter indentation logic is organized in our codebase. This doesn’t have direct effects on the user, but should make it easier to iterate on indentation logic and deliver more features to the indentation hinting system.

In fact, there’s one new feature for indentation: a new @match.next capture. It’s not something that a grammar author would commonly need, but it allows them to do things that weren’t possible before — for instance, to move the indentation level to its proper place after a “hanging indent.”

In the coming releases, some built-in grammars may take advantage of this feature to deliver indentation hinting options that come closer to "reading your mind".

That's everything this time around, and as always a gracious thank you to our wonderful community, all those that contribute to issues, discussions and pull requests, and help make Pulsar possible through donations, bug reports, and helping to support other users.

Until next time, happy coding, and see you amongst the stars!
- The Pulsar team


  • Updated web-tree-sitter to version 0.23.0.
  • [language-css] Updated tree-sitter-css to the latest version.
  • [language-gfm] Updated tree-sitter-markdown to the latest version.
  • [language-html] Updated tree-sitter-html and tree-sitter-embedded-template to their latest versions.
  • [language-javascript] Updated tree-sitter-javascript to the latest version.
  • [language-typescript] Updated tree-sitter-typescript to the latest version.
  • Added a new @match.next capture for advanced control of how indentation should change from one line to the next.
  • Added new indentation-specific query predicates indent.matchesComparisonRow and indent.matchesCurrentRow for comparing arbitrary positions in a Tree-sitter node tree to the operative rows in an indentation suggestion query. Makes it possible to say things like “decrease the indent on line 10 if a statement ends on line 9.”
  • Renamed indentation directives indent.matchIndentOf and indent.offsetIndent to indent.match and indent.offset, respectively. The old names still work as aliases.
  • Improved the command-line pulsar script’s ability to find the user’s Pulsar installation location on Linux.
  • On macOS and Linux, pulsar -p now invokes ppm without having to launch Pulsar itself.
  • Added options to the Windows installer to add Pulsar and PPM to the PATH
  • Fixed ppm rebuild command on ARM (Apple Silicon) Macs

Pulsar

PPM

v1.120.0

18 Aug 01:53
Compare
Choose a tag to compare

Pulsar 1.120.0: Keeping it clean!

This release is fully of housekeeping, fixes, Tree-sitter improvements and more.

Our icon on Windows got some TLC to look less crunchy! It should look better just about everywhere (on the taskbar, in the installer, Pulsar's window title bar, explorer context menu, you name it!)
There's our regular Tree-sitter improvements, like indentation improvements in JavaScript and Typescript, improved syntax highlighting in TypeScript, with general improvements to code folding, and new hackability on query files.
We've enhanced the functionality of the 'pulsar -p' switch for accessing 'ppm', and checked its correctness. No more printing the versions for Pulsar when you meant to print the version of 'ppm'! Arguments / subcommands should make it safely to 'ppm' as you intended. (On Windows -- enhancements will come to Linux and macOS soon™️!) Further with PPM stale dependencies have been removed and updated as needed.
We now handle indents/leading whitespace better for all the snippets users out there! Snippet fearlessly, now with proper indentation handling!
And, last but not least, we fixed a stray link in 'CONTRIBUTING.md'.

As always thanks a ton for all of the support for the project, and we look forward to seeing you amongst the stars.

- The Pulsar Team


  • Resolved some issues of using pulsar -p to access ppm in the command line on Windows.
  • Added a new icon for Pulsar on Windows, increasing its visual fidelity in most locations.
  • [snippets] Fixed an issue with expanding snippet variables in certain scenarios if the snippet inserted new lines into the buffer.
  • Updated misconfigured links in the CONTRIBUTING.md file.
  • [ppm] Resolved an issue that could prevent renaming an existing package.
  • Various Tree-sitter improvements (folds, indents, custom queries, grammar updates...)

Pulsar

PPM

  • Updated: Begin less reliance on async package: Await as we go @confused-Techie
  • Fixed: Fix incorrect behavior on package rename @savetheclocktower
  • Updated: Update many dependencies @DeeDeeG
  • Revert: Revert "CI: Work around a weird bug in Yarn v1.x" @DeeDeeG

v1.119.0

17 Jul 02:50
Compare
Choose a tag to compare

Pulsar v1.119.0 is live!

While a smaller release this time around, v1.119.0 still manages to pack a punch.

For macOS, we've gone to great lengths to ensure Pulsar should build just fine on macOS 13+, while our Linux users get greater compatibility for DevTools on various platforms. For our programmers, there's been more of the constant incremental improvements to various languages' built-in syntax highlighting and code folding this time around, with a focus on PHP, Python, Javascript, Typescript, Shell script, and C.

As always thanks a ton to all of those that support the project and keep it moving forward, we appreciate you all, and look forward to seeing you amongst the stars.

- The Pulsar Team


NOTICE

Originally, the binaries from our normal "Pull Request" CI build (which produces unsigned binaries) were accidentally uploaded to this release, instead of the binaries from the special "tag push" CI build (which signs the macOS binaries). In order to provide you with signed macOS binaries, we are re-uploading the Intel macOS binaries and updating SHA256SUMS.txt to reflect this. As such the following binaries have been swapped out for the correct versions, with the checksum being updated as well for the following files:

  • Intel.Mac.Pulsar-1.119.0-mac.zip
  • Intel.Mac.Pulsar-1.119.0.dmg

  • Changed language-php to continue syntax-highlighting even when encountering unbalanced PHP tags. (Avoid throwing a syntax error)
  • Indentation, fold, and highlighting fixes in language-python, language-javascript, language-typescript, language-shell and language-c.
  • Worked around API breakage (FreeBSD libiconv vs GNU libiconv) in the iconv library shipped in macOS 13+
  • Fix --no-sandbox flag not being applied to the .desktop launcher on Linux (Fixes Dev Tools)

Pulsar

superstring

v1.118.0

17 Jun 02:51
Compare
Choose a tag to compare

Hot dog, it's another Pulsar release!

Get your grills ready, Pulsar v1.118.0 is cooking with gas! This release brings lots of love to syntax highlighting, along with a zesty sprinkling of features and fixes.

We've got Tree-sitter fixes and improvements, including improved documentation around Tree-sitter's usage, an updated PHP parser, fixed syntax quoting on Clojure, as well as enhanced Clojure highlighting support for metadata and "def" elements, as well as improved injection points for Clojure. EDN files are back to being detected as Clojure, but will highlight correctly as EDN. Tasty!

Within the Pulsar application the new setting core.allowWindowTransparency lets users set the background of the editor to support transparency, although transparent CSS styles must be set by a theme or user stylesheet for Pulsar to actually be transparent. The textChanged property is now accurate when characters are deleted.

The Tree-sitter syntax highlighting system now has a new test for queries ancestorTypeNearerThan which helps matching the first type as an ancestor, as well as supporting a second buffer argument in the content field of addInjectionPoint for easier customization.

Finally, for our community package developers, they will be glad to hear that first time publication issues have been resolved with a rewrite of the ppm publish command, improving the workflow, and ensuring things work properly with the updated backend. Please feel free to share what you've been cooking by publishing your packages!

As always, thanks a ton to all of our users and supporters for sticking with the Pulsar project, and until next time, happy coding, and see you amongst the stars!

- The Pulsar Team


  • Various tree-sitter grammar improvements
    • Docs fixes
    • A parser update for PHP
    • Miscellaneous grammar fixes and improvements
  • Added a preference core.allowWindowTransparency so that themes and user stylesheets
    can make editor windows' backgrounds transparent.
  • Added a new modern tree sitter "test" for highlight query - ancestorTypeNearerThan
    that matches if it finds the first type as an ancestor, but doesn't match if
    any "other" ancestors are found before
  • Syntax quoting and unquoting in Clojure now highlights correctly, and also
    highlights full qualified keywords differently than generated ones
  • content field of addInjectionPoint for modern-tree-sitter now supports a second
    buffer argument, for better customization if one wants to
  • EDN is back to being detected as Clojure (for compatibility) but highlights as EDN
  • Fixed syntax quoting on Clojure grammar (newer tree-sitter), fixed some
    injection points on Clojure. Added support for highligting metadata, and added
    better support for "def" elements (for example - doesn't scope default or
    definition as a def, but highlights p/defresolver)
  • Fixed textChanged property to be accurate when deleting characters
  • Fixed ppm publish for publishing brand new packages

Pulsar

  • Fixed: Tree-sitter rolling fixes, 1.118 edition @savetheclocktower
  • Added: src: Allow windows to be transparent, behind a pref (off by default) @DeeDeeG
  • Added: Another batch of Clojure enhancements @mauricioszabo
  • Fixed: Fix onDidChangeCursorPosition callback event property on deleting characters @mauricioszabo
  • Bumped: Update ppm to commit 3542dee00f4622f7458f2f65f05e5 @DeeDeeG
  • Updated: Cirrus: Update Rolling upload token @DeeDeeG

v1.117.0

17 May 04:10
Compare
Choose a tag to compare

Pulsar 1.117.0: With special love for Markdown and Tree-sitter

As somewhat expected, this release is full of new improvements for Tree-sitter grammars! With SCSS now having Tree-sitter support, to Ruby getting an updated parser, or performance and highlighting enhancements in Markdown and TypeScript there's hopefully something in there for everybody. Speaking of Markdown, the markdown-preview package has gotten new features and improvements with significant performance increases in the preview pane and rendering fenced code blocks, while still boasting brand new dark mode support! But dark mode support doesn't stop there, Pulsar now, optionally, supports OS-level dark mode that syncs with the actively selected Theme within the app, meaning that if enabled Pulsar will change its window theme within the OS to match any built-in or community theme.

Beyond the fixes and features within the editor itself, you'll be glad to know this release also saw many improvements for our Continuous Integration to ensure we can deliver timely and bug-free updates in the future.

Until next time, happy coding, and see you amongst the stars!
- The Pulsar team


  • [markdown-preview] Improve rendering performance in preview panes, especially in documents with lots of fenced code blocks.
  • [markdown-preview] GitHub-style Markdown preview now uses up-to-date styles and supports dark mode.
  • Pulsar's OS level theme will now change according to the selected editor theme if core.syncWindowThemeWithPulsarTheme is enabled.
  • [language-sass] Add SCSS Tree-sitter grammar.
  • [language-ruby] Update to latest Tree-sitter Ruby parser.
  • [language-gfm] Make each block-level HTML tag its own injection.
  • [language-typescript] More highlighting fixes, especially for operators.

Pulsar

  • Fixed: Cirrus: Fix gem install fpm on ARM Linux @DeeDeeG
  • Updated: [ci] Update Cirrus CI Token @confused-Techie
  • Fixed: CI: Fix workaround for Homebrew node in Cirrus on macOS @DeeDeeG
  • Added: [markdown-preview] Optimize re-rendering of content in a preview pane especially syntax highlighting @savetheclocktower
  • Fixed: Tree-sitter rolling fixes, 1.117 edition @savetheclocktower
  • Updated: Update Renovate preset name @HonkingGoose
  • Added: Debugging when a package service is incorrect @mauricioszabo
  • Added: Bundle snippets @confused-Techie
  • Fixed: CI: Pin to macOS 12 runner images instead of macos-latest (GitHub Actions) @DeeDeeG
  • Added: [markdown-preview] Add dark mode for GitHub-style preview @savetheclocktower
  • Added: Change Window Theme with Pulsar Theme @confused-Techie
  • Updated: CI: Upgrade or replace all deprecated GH Actions @DeeDeeG
  • Fixed: [language-clojure] Stop detecting .org files as .language-clojure @confused-Techie

v1.116.0

16 Apr 03:09
Compare
Choose a tag to compare

Pulsar 1.116.0: Ready for all the code ninjas out there

Like the past few releases, this Pulsar release is full of Tree-sitter improvements and fixes! From TypeScript and Python getting improved syntax highlighting all around, to big changes like replacing the underlying Markdown Tree-sitter parser, Pulsar 1.116 is sure to make these grammars more stable and aesthetically pleasing.

But on to some of the really exciting stuff this month: we have a flurry of new features and updates to snippets, which is sure to make otherwise repetitive coding exciting and high-tech!

For anyone familiar with the super secret code ninja techniques of snippets, there's now support for new snippet variables and transformation flags. Be sure to read the full changelog to get caught up on all of these changes.

As always, this release has some bug fixes and housekeeping. Linux folks will appreciate improved metadata for their installs, whereas Windows folks will be happy to see that adding Pulsar to the PATH is easier than ever whether Pulsar is installed for just one user or system-wide.

That's just about everything this time around. We can't wait to see what people do with these powerful new snippets features and look forward to the next one!

Until next time, happy coding, and see you amongst the stars!
- The Pulsar team


  • Added TextEditor::getCommentDelimitersForBufferPosition for retrieving comment delimiter strings appropriate for a given buffer position. This allows us to support three new snippet variables: LINE_COMMENT, BLOCK_COMMENT_START, and BLOCK_COMMENT_END.
  • Added ability to use “simple” transformation flags in snippets (like /upcase and /camelcase) within sed-style snippet transformation replacements.
  • Improved TypeScript syntax highlighting of regular expressions, TSX fragments, wildcard export identifiers, namespaced types, and template string punctuation.
  • Replaced our underlying Tree-sitter parser for Markdown files with one that’s more stable.
  • Fixed issues in Python with unwanted indentation after type annotations and applying scope names to constructor functions.
  • Removed Machine PATH handling for Pulsar on Windows, ensuring to only ever attempt PATH manipulation per user. Added additional safety mechanisms when handling a user's PATH variable.
  • Update (Linux) metainfo from downstream Pulsar Flatpak

Pulsar

snippets

  • Added: Add support for variables LINE_COMMENT, BLOCK_COMMENT_START and BLOCK_COMMENT_END @savetheclocktower
  • Added: Extend support for simple transformation flags to sed-style replacements @savetheclocktower

v1.115.0

23 Mar 03:44
Compare
Choose a tag to compare

A week later than you’re accustomed to — but worth the wait! Pulsar 1.115.0 is available now!

Last month’s 1.114.0 release was full of fixes related to the recent migration to modern Tree-sitter. This month’s release is much smaller, but still dominated by Tree-sitter fixes affecting syntax highlighting, code folding, and indentation.

The most visible fixes are related to your ability to customize the grammar that Pulsar uses on a per-language basis. This is an approach we’ve encouraged for users that want or need to revert to an older grammar for a specific language — better to do so on a targeted basis than globally. If you can edit your config file, you can do per-language customization.

For instance, now it’s even easier than before to say “use legacy Tree-sitter, but only for Python”:

".python.source":
  core:
    useLegacyTreeSitter: true

Or “use modern Tree-sitter for JavaScript, but TextMate-style grammars everywhere else”:

"*":
  core:
    useTreeSitterParsers: false
".source.javascript":
  core:
    useTreeSitterParsers: true

Better yet, now the grammar-selector package will be attuned to these choices. When you manually reassign a buffer to use a different grammar, it will offer you only the “correct” grammar for each language based on what you’ve opted into.

We’ve also delivered our customary incremental improvements in language support, and one change that affects nearly all languages: indentation hinting will be more accurate in transactions with multiple buffer changes. The most common example of a multi-edit transaction is when the user places more than one cursor and starts typing.

We’ve made improvements to our language-ruby bundle, primarily with code folding and indentation hinting. TypeScript and C/C++ also got some small enhancements, and the language-shellscript bundle got a parser update.

And lastly, on another note, we have a few maintenance and upkeep PR's to keep our Cirrus CI active and working, to ensure you can keep using and enjoying the latest builds Pulsar has to offer.

Until next time, happy coding, and see you amongst the stars!

- The Pulsar team


  • Fixed some folds in Ruby like unless, some blocks, multiline comments, function calls, and different array syntaxes for strings and keywords.
  • Improved the accuracy of indentation hinting in modern Tree-sitter grammars, especially in multi-cursor scenarios.
  • Improved the ability of the user to opt into a specific kind of grammar for a specific language.
  • Changed the behavior of the grammar-selector package so that it will show the user's preferred grammar for a specific language.
  • Updated to version 0.20.9 of web-tree-sitter.
  • Improved syntax highlighting, indentation, and code folding in various languages, including TypeScript, shell scripts, Ruby, and C/C++.

Pulsar

  • Fixed: Fixed folds for Ruby @mauricioszabo
  • Fixed: Tree-sitter fixes: 1.115 edition @savetheclocktower
  • Updated: cirrus: Update Rolling upload token again @DeeDeeG
  • Fixed: cirrus: Various fixes for macOS Cirrus CI @DeeDeeG
  • Fixed: Fix(fuzzy-finder) fs.lstatSync throws Exception if not a file or dir @schadomi7
  • Updated: CI: Update Rolling upload token for Cirrus CI @DeeDeeG
  • Updated: Cirrus: Install older dotenv gem version ~> 2.8 (< 3) @DeeDeeG