Pulsar Changelog

What's new in Pulsar 1.116.0

Apr 16, 2024
  • 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.
  • 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:
  • Updated: Update Pulsar's Linux desktop & metainfo mostly from Flatpak @cat-master21
  • Updated: [core] Simplify/Cleanup StyleManager @confused-Techie
  • Fixed: Tree-sitter fixes (1.116 edition) @savetheclocktower
  • Bumped: Bump snippets dependency to 1.8.0 @savetheclocktower
  • Added: Add a TextEditor method for retrieving comment delimiters... @savetheclocktower
  • Fixed: [core] (Windows) Remove all Machine PATH handling, add safety mechanisms @confused-Techie
  • 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

New in Pulsar 1.115.0 (Mar 25, 2024)

  • 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

New in Pulsar 1.114.0 (Feb 21, 2024)

  • A Valentine's release bursting with love, Pulsar 1.114.0 is available now:
  • Welcome to a brand new Pulsar release! I think it is safe to say that this month has been one of our more eventful due to the switchover we made to the new Tree-sitter implementation. This release features a lot of updates and fixes for this new implementation, thanks to all the feedback we got from the community. We also have a number of other bug fixes and new features to introduce, such as restoring compatibility with older Linux distributions, and a new flag for an old favorite ppm command.
  • As mentioned above, we have quite a few changes relating to our new Tree-sitter implementation that we made default in Pulsar 1.113.0. First of all, we have some fixes and updates to make sure the new implementation isn't a regression from the legacy implementation. One such update is restoring support for the semanticolor package, which was supported by the previous implementation. Otherwise, if you had any particular issue with syntax highlighting, then we hope it has now been resolved, as a lot of changes and fixes have been made in response to community feedback. If not, then please visit our ongoing "Mega-issues" and see if your issue has been raised, and if not, please raise it there.
  • Back in Pulsar 1.111.0, we created a new UI api to make an easy and universal way for packages to interact with Pulsar. This implementation did contain a couple of small oversights, which have now been resolved. One issue with the markdown implementation was the display of non-functional heading anchors when rendering a package README; the other was a small rendering bug that was causing a misalignment of content after a linebreak. We had also inadvertently introduced a new problem with fuzzymatcher that could cause the command palette to hang if it failed to highlight a match.
  • One issue raised a while ago was that, starting with Pulsar 1.109.0, users of older LTS Linux distributions, such as AlmaLinux 8 and RockyLinux 9, were no longer able to run Pulsar. This was due to the CI runners we use being updated to newer OSs, and therefore Pulsar was being compiled against a newer version of glibc. We have changed our workflows to compile Pulsar in a Debian 10 Docker container instead, which should resolve this problem.
  • It was noticed a while ago that the github package wasn't quite working correctly on ARM Linux systems. We have bumped the version of dugite (a library for using git in NodeJS and Electron) to resolve the problem.
  • Lastly, we have two new features in ppm. The first is a new flag --force that can be specified on ppm link, which will forcibly replace a conflicting package without needing to manually remove it. The other is an update to ppm's syntax theme template so that, when generating a new syntax theme, it now includes some style variables that the editor has long supported, but which were not in the template, so theme authors might have been unaware of them. (As a bonus: there are two new variables supported by default in the editor, and added to the template as well! Theme authors, feel free to take advantage of these!)
  • And that is it for yet another Pulsar release. We hope you enjoy this release and look forward to the next one!
  • Until next time, happy coding, and see you amongst the stars!
  • The Pulsar team:
  • Prevented an exception raised in the command palette in certain unusual filtering scenarios.
  • Refrain from rendering anchor icons when showing a package's README file in settings-view.
  • Build Linux binaries on Debian 10, for older glibc and compatibility with older Linux distros.
  • Fixed a rendering error in atom.ui.markdown.render when disableMode was set to "strict" and the input contained HTML line breaks.
  • Added support for the semanticolor package in modern tree-sitter grammars.
  • Added new --force flag to ppm link command that will uninstall any conflicting package already installed.
  • Added language entity colors to syntax-variables.less.
  • Numerous Tree-Sitter Grammar syntax highlighting fixes.
  • Bumped dugite to make the github package compatible with ARM Linux.
  • Pulsar:
  • Fixed: fix(tree-sitter): pass node text to grammar @claytoncarter
  • Fixed: Fix issue with Markdown rendering after line break in strict mode @savetheclocktower
  • Updated: Update README badges @Daeraxa
  • Updated: Update copyright year to 2024 @Daeraxa
  • Added: CI: build Linux x86-64 binaries on older Linux @DeeDeeG
  • Fixed: Tree-sitter rolling fixes (January edition) @savetheclocktower
  • Fixed: Fix failing spec @savetheclocktower
  • Fixed: [settings-view] Don't display heading anchor icons within a README @savetheclocktower
  • Updated: ppm: Update ppm to commit 241d794f326b63b5abdb9769 @DeeDeeG
  • Fixed: script: Update version check in Rolling release binary upload script to exclude '-dev' versions @DeeDeeG
  • Fixed: CI: Fix tag Linux binaries are uploaded to for Rolling @DeeDeeG
  • Fixed: [command-palette] Guard against failure to highlight a match @savetheclocktower
  • Fixed: symbols-view rolling fixes @savetheclocktower
  • Fixed: Tree-sitter rolling fixes (February) @savetheclocktower
  • Updated: [meta] Update Cirrus GITHUB_TOKEN @confused-Techie
  • Updated: deps: Update github to v0.36.20-pretranspiled to bump dugite @DeeDeeG
  • Fixed: [symbols-view] Remap go-to-declaration commands on Windows/Linux @savetheclocktower
  • PPM:
  • Fixed: Fix test failure due to missing atom command @toddy15
  • Updated: Update syntax-variables.less to include language entity colors @savetheclocktower
  • Added: feat(link): add --force flag @claytoncarter
  • github:
  • Updated: Bump dugite to 2.5.2 @DeeDeeG

New in Pulsar 1.113.0 (Feb 7, 2024)

  • Welcome to our first release of 2024! This is our 13th main release; let's just hope we aren't cursed by the number. This month we are enabling a feature by default that has been in the works for a long time and is a major step in moving Pulsar to current versions of Electron. We also have a significant update to our symbols-view package and a number of bug fixes as per usual.
  • First up is something we have been mentioning in the last few community update blog posts and otherwise hinting about for a while. Back in Pulsar 1.106.0, released in July last year, we added a new setting called Use Modern Tree-Sitter Implementation that would enable a brand new implementation of Tree-sitter within Pulsar. If you want to know more about the history of this change, then have a look at our detailed blog post on the topic as well as @savetheclocktower's fantastic blog post series. A huge thank you to everyone who contributed to this feature by testing it out and submitting bug reports and pull requests, these contributions have led to this moment where we can finally activate it by default. The reason we have done this is in order to eventually move to modern versions of Electron, for which the old tree-sitter implementation is simply not compatible. We have had this as an option while we worked out the most egregious kinks in the system, but we are in a position where we feel it is strong enough to enable by default. If you encounter any significant issues with the new system, there is a new option Use Legacy Tree-sitter Implementation that will revert to the old system. It would be great if any problems with the new system could be brought to our attention via any of our social channels so we can look to fix any issues that have yet to be encountered by us.
  • We have a rather significant update to our symbols-view package. This package is used to display symbols within Pulsar (e.g. function definitions) and allows you to navigate your code via those symbols. This package has had a rather major overhaul and now follows the standard "provider/consumer" model as many other Pulsar packages do. In particular, this allows for packages to provide symbols to symbols-view, such as Tree-sitter grammars, via the new symbol-provider-tree-sitter package. The upshot of this, combined with the new Tree-sitter implementation, is that there will be a much richer and more accurate display of symbols in your project. More information can be found in the pull request for this change.
  • A new Tree-sitter PHP grammar has been added to Pulsar as part of ongoing Tree-sitter grammar upgrades and improvements, which includes some contributions from community member @claytonrcarter who had a parser for PHPDoc allowing us to highlight documentation comments in PHP in a similar vein to JSDoc injection JS/TS files.
  • On to some bug fixes. We had an issue reported about the github package that showed a problem with the rendering of the diff view display. This seems to have been due to a code path in our TextEditor component that would sometimes try to perform measurements on things that weren't necessarily visible. The fix here, simple as it seems, was to defer those measurements until we could be sure the editor was visible.
  • Next, we have a fix to the find-and-replace package caused by an odd interaction between the package and the Preserve Case During Replace option, causing an error to appear when using empty strings as input (as an empty string cannot be capitalized).
  • And last, we have a change to the default behavior of rendering emojis in Markdown as part of the new UI API. This issue was discovered due to an unwelcome (but admittedly rather apt) in the middle of an error message popup. While the error was rather hilarious, we did decide that it needed to be banished by default for the sake of one of our team members' sanity (and to reduce unnecessary obfuscation of errors, of course).
  • And that is all we have for you right now. We hope you enjoy this new release and here is to another 12 months of Pulsar!
  • Until next time, happy coding, and see you amongst the stars:
  • THE PULSAR TEAM:
  • Enabled Modern Tree-sitter Grammars by default
  • Added a modern Tree-sitter grammar for PHP.
  • Fix a measurement issue that was causing visual glitches in the github package's diff views.
  • Enabled the core symbols-view package to accept symbols from a number of sources, including Tree-sitter grammars and IDE packages.
  • Switch default to false for converting ASCII emoticons to emoji when rendering Markdown.
  • Fix certain find-and-replace scenarios when the "Preserve Case During Replace" setting is enabled.
  • Fix an issue in symbols-view when returning from visiting a symbol declaration.
  • PULSAR:
  • Fixed: Tree-sitter fixes for December (including a PHP grammar!) @savetheclocktower
  • Added: Make useExperimentalModernTreeSitter the default... @savetheclocktower
  • Fixed: Ensure editor is visible before measuring block decorations @savetheclocktower
  • Added: Overhaul symbols-view @savetheclocktower
  • Added: Default to no emoji when rendering Markdown @savetheclocktower
  • FIND-AND-REPLACE:
  • Fixed: [find-and-replace] Fix capitalize utility @savetheclocktower
  • SYMBOLS-VIEW:
  • Fixed: [symbols-view] Fix issue with returning from a declaration @savetheclocktower