Skip to content

Releases: pulsar-edit/pulsar

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

v1.114.0

16 Feb 07:14
Compare
Choose a tag to compare

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

v1.113.0

16 Jan 04:06
Compare
Choose a tag to compare

Unlucky for some, but not us. Our 13th release, Pulsar 1.113.0, is available now!

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

find-and-replace

symbols-view

Hotfix: Pulsar v1.112.1

19 Dec 06:35
Compare
Choose a tag to compare

Hotfix for a bug in PPM that prevented community package maintainers from publishing new packages or package versions.

Includes these PRs: pulsar-edit/ppm#116 and pulsar-edit/ppm#118 to fix the issue.

See the v1.112.0 release for all the other changes since v1.111.0.

v1.112.0

16 Dec 07:58
Compare
Choose a tag to compare

Christmas has come early: Pulsar 1.112.0 is available now!

Welcome to our 12th regular release! It has been exactly a year since we put out our first tagged release and development continues. This month we have some new soft-wrapping options, some long overdue updates to PPM, improvements to our "GitHub" package, a new fuzzyMatcher API and our usual slew of bug fixes.

Let's start with a feature added by community member @Trigan2025. There are now new options for the "soft wrapping" feature that allows Pulsar to automatically show or hide the soft wrap guide line based on your soft wrap settings. You can find this new option within wrap-guide package settings.

We have a number of new PPM changes, including better and more secure network handling and converting PPM's code to async. You can read about this second change in much more detail in a recent blog post we made. We have also taken the opportunity to do some out-of-season spring cleaning to tidy up the repo and get rid of old, unused dependencies, as well as some general maintenance.

On to our GitHub package, we found that we had a rather common issue with people not being able to log into their GitHub account via the package. Essentially, it was possible to set scopes in such a way that, although permissions were technically granted, Pulsar was unable to read the scopes and refused to log in. To solve this, we have updated the package to provide feedback and improved the scope checking logic. We also updated the link to the Personal Access Token page to include by default the scopes that Pulsar requires.

Continuing with the theme of last month's new "UI" API, we have another new API that all packages can now take advantage of. This time it is ui.fuzzyMatcher which will allow packages to use Pulsar's fuzzy-finder module without needing to bundle it into their own packages.

And to finish off with a bug fix, an issue was found where Pulsar wasn't correctly inheriting the directory from which the pulsar binary was being run, leading to some slightly odd behaviour.

It is hard to believe that it has been an entire year since we created our first tagged release of Pulsar and we never would have managed to get to this milestone without the amazing support from our donors and our community, so as ever, a massive thank you to everyone who has allowed us to get this far!

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

  • The Pulsar Team

  • Fixed github package not giving feedback when a token with the wrong scopes was entered, tweak scope-checking logic to match expectations, and log incorrect scopes.
  • Various cleanups, maintenance and upkeep of the PPM repo.
  • Added options for a user to control when to automatically show or hide the wrap-guide; "Always", "When soft wrap is enabled", and "When soft wrap at preferred line length is enabled".
  • Updated network handling in PPM to something newer and more secure.
  • Updated most of PPM's code to use async/await and promises internally.
  • Created atom.ui.fuzzyMatcher API, moving the Pulsar fuzzy-finder module into the core of the editor for community packages to utilize.
  • Fixed an issue that prevented Pulsar from inheriting the directory from which the pulsar binary was run.

Pulsar

  • Added: [tree-sitter] Share config caches between ScopeResolvers @savetheclocktower
  • Bumped: deps: Update github to v0.36.19-pretranspiled (fix silent failure when inputting a token with incorrect scopes) @DeeDeeG
  • Bumped: ppm: Update ppm to commit 957acbd90cfc9f361c183b3c @DeeDeeG
  • Added: Return to original logic for ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT @savetheclocktower
  • Added: Moving fuzzy-native to core @mauricioszabo
  • Fixed: Tree-sitter rolling fixes for November @savetheclocktower
  • Fixed: CI: Update Rolling upload token for Cirrus @DeeDeeG
  • Bumped: ppm: Update to commit 13fb2845e00d7e04c2461f93 @DeeDeeG
  • Added: Ability to indicate when to automatically show or hide the wrap-guide @Trigan2025

PPM

github

  • Added: lib: Allow parent scopes when checking if each required scope is set @DeeDeeG

v1.111.0

16 Nov 06:05
Compare
Choose a tag to compare

If you're API and you know it, clap your hands!: Pulsar 1.111.0 is available now!

Welcome to a new Pulsar regular release. This time we have a big new addition to Pulsar's API along with our usual set of bug fixes (with some fantastic community contributions).

One of our major changes is the new UI API we have added to the 'atom' global class. You can read about this in detail in our recent blog post but essentially, this allows us to unify the way we render things in Pulsar. For this release, we have a new 'markdown' object that means packages (both core and community) no longer have to worry about performing Markdown rendering and instead can offload it to Pulsar itself. This allows us to create a unified way to render Markdown by using a single set of dependencies. We also took the opportunity to move from the previous marked library to the markdown-it parser we are already using on the Pulsar Package Registry. As an added bonus, we also get to save some space on the installation size!

On that last topic, we have found a way to reduce Pulsar's installed size by ~35.5 MB by deduping some dependencies and otherwise performing some fine tuning on them.

Next, we have a fix for a really tricky bug that has been around since the Atom days, which we logged on our own repo almost a year ago. The problem is that it has been devilishly difficult to find a perfect set of reproduction steps. Thankfully, we have now managed to do this (with a great deal of help from one of our community members, @asiloisad/@bacadra) and have a fix. This was a problem that would occasionally show up when a hidden input element used in the text editors would be focused when out of view, causing the screen to be "misaligned" or otherwise "shifted".

And on the theme of community, we have two issue reports and subsequent bug fixes by community members. The first is by @danfuzz to fix a problem in our bash Tree-sitter grammar where ANSI C quoted strings were not being properly highlighted as actual strings. The second is by @kiskoza who discovered a problem with our (relatively) recently introduced pulsar-updater package, which notifies you if a new release of Pulsar is available. The bug in question was a problem with the "Dismiss this version" button, which was not caching correctly and would therefore "forget" that somebody had requested to not be notified for that version again.

We hope you enjoyed reading about this update as much as we hope you continue to enjoy using Pulsar. As ever, a huge thank you to our generous donors and community, without whom this project would not be possible.

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

  - The Pulsar Team


  • Added a new "UI" API to atom, accessible via atom.ui. This exposes a markdown object, allowing community packages to offload Markdown handling to the core editor.
  • Fine-tuned/deduped dependencies to remove ~35.5 MB from Pulsar's installed size.
  • Fixed an issue that sometimes caused text to shift or disappear after an editor pane regains focus.
  • Fixed scoping/highlighting of single-quoted ('...') and C-style ($'...') strings in shell scripts.
  • Fixed an issue with the "Dismiss this Version" button (in the pulsar-updater package).
  • Fixed an issue with how Linux Pulsar binaries were built, to ensure compatibility with non-bleeding edge glibc versions. (Compatibility with even older glibc versions is still being looked into, for the folks on older or RHEL-compatible distros.)

Pulsar

  • Fixed: meta: Update CirrusCI GitHub Token @confused-Techie
  • Bumped: deps: Update github, for dugite deduping purposes @DeeDeeG
  • Fixed: Tree-sitter running fixes (October) @savetheclocktower
  • Fixed: Prevent "half screen" bug by resetting scroll position when editor regains focus @savetheclocktower
  • Added: [core] New UI API @confused-Techie
  • Fixed: CI: Build binaries for tag pushes (GitHub Actions) @DeeDeeG
  • Added: [DOCS] Add non-macOS keybindings for fuzzy-finder readme @Daeraxa
  • Removed: Remove Teletype from Welcome guide @Daeraxa
  • Fixed: CI: Python 3.12-related fixes on Cirrus CI @DeeDeeG
  • Fixed: CI: Work around missing 'distutils' for Python 3.12+ (GHA round two) @DeeDeeG
  • Added: [meta] Create Workflow to validate WASM Grammar Changes @confused-Techie
  • Fixed: 🐛 ✅ Fix caching for "Dismiss this Version" in pulsar-updater @kiskoza
  • Fixed: [tree-sitter] Fix proliferation of extra injection layers @savetheclocktower
  • Added: CI: Increase timeout length for macOS binary builds @DeeDeeG
  • Fixed: Fix the matching of $'...' strings. @danfuzz
  • Fixed: [meta] Install Python package setuptools && Use Python 3.12.x @confused-Techie
  • Fixed: Update web-tree-sitter to include isalnum builtin @savetheclocktower
  • Fixed: [meta] Build x86 Linux binaries on Ubuntu 20.04, for older (more compatible) glibc @confused-Techie
  • Bumped: [core] Bump git-utils: 5.7.1 => ^5.7.3 @confused-Techie
  • Removed: [core] Cleanup Unused Deps @confused-Techie

github

  • Bumped: deps: Update whats-my-line to bump dugite to 2.1.0 @DeeDeeG

whats-my-line

v1.110.0

16 Oct 08:13
Compare
Choose a tag to compare

Armed with a big ol' can of Raid: Pulsar 1.110.0 is available now!

Here we are with another Pulsar release, and this month we have quite a number of fixes and improvements. This time around, the focus has really been on bug fixes in order to improve the overall experience.

Starting with changes to PPM (Pulsar Package Manager), it has been updated to use a newer version of node-gyp (a tool for compiling native modules for node.js), which will allow use of newer C/C++ compiler toolchains as well as newer versions of Python, namely 3.11, which introduced an issue for PPM requiring downgrading to 3.10. For Windows users, it also now supports Visual Studio 2022! We previously covered (part of) this topic in one of our community update blog posts in a bit more detail, so be sure to have a read of that too.

On the topic of PPM, the decaffeination (conversion of CoffeeScript to JavaScript) has now been completed thanks to community members @nemokosch/@twocolours & @GuilleW. In the last release, we announced this had been completed in the core editor and packages; now this has been extended to PPM!

Onto Pulsar itself: we have a few new features that have been added. The first is a new autocomplete API that works on ranges rather than the previous prefix system, which will improve LSP support. (And on the topic of autocomplete, if anyone had been editing EJS files and noticed errors popping up, these have now been greatly reduced in this update).

Onto the fixes. This first one solves an issue where, if you attempted to start Pulsar with an invalid configuration file, then it would silently fail but still present a running process. Error checking has now been added so that the error can actually be exposed to the user.

Next, we have a problem introduced with our snippets package update, which now includes variables indicated by a $, which is also used by PHP, so some escaping of these characters needed to be added.

And lastly, we had a problem with macOS binary signing in version '1.109.0'; this was already covered in the last community update, and now this fix applies to our regular releases.

And that just about covers things for this release. We hope you have enjoyed reading this and continue to enjoy using Pulsar. As ever, a huge thank you to our generous donors and community, without whom this project would not be possible.

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

  - The Pulsar Team


  • Made the modification of editor.preferredLineLength configurable within wrap-guide when changing wrap-guide.columns
  • Fixed Snippets from language-php that would lose the $ character
  • Fixed a condition where an invalid config may crash Pulsar before fully starting up, but not registering that it's crashed
  • Reduced error notifications that may appear from autocomplete-html when handling EJS files
  • Fixed macOS binary signing after moving over to GitHub Actions for CI
  • Updated PPM to a newer node-gyp, allowing newer versions of C/C++ compiler toolchains and Python to be used (also dropped support for Python 2.x!)
  • Fully decaffed the entire PPM codebase
  • Added a new autocomplete API that does not uses prefixes and instead declares the range it'll replace (better LSP support)

Pulsar

  • Fixed: Fixed filtering of suggestions with ranges @mauricioszabo
  • Added: Tree-sitter running fixes for September @savetheclocktower
  • Added: Add escapement to variable literals within php snippets @Spiker985
  • Added: [core] Handle invalid config on load @confused-Techie
  • Added: [autocomplete-html] Wrap completions in try/catch handler @confused-Techie
  • Bumped: Update dependency postcss to v8.4.31 [SECURITY] @renovate
  • Fixed: CI: Sign macOS binaries for branch pushes, not PRs @DeeDeeG
  • Fixed: CI: Use Python 3.11 to fix macOS signing @DeeDeeG
  • Fixed: [meta] Fix Windows Builds in CI @confused-Techie
  • Bumped: ppm: Update ppm submodule to commit a2ade745bfbc5f @DeeDeeG
  • Added: Making autocomplete-plus work to replace ranges @mauricioszabo

ppm

v1.109.0

16 Sep 06:39
Compare
Choose a tag to compare

Going the whole nine yards: Get Pulsar 1.109.0 now!

Our next release has arrived, and, as ever, we are excited to share all the changes we have been making over the last month since our last release.

We have a smorgasbord of bug fixes and quality of life improvements this month that we hope will make things just that bit better overall. Many of these changes are "behind the scenes", so you may not see much evidence of them when using Pulsar, but the lack of any obvious changes means that we actually accomplished our goals of not disrupting the user experience.

Starting things off is one of these "background" changes, but it was a massive amount of work that was put into the project in order to move CI platform. We have a fantastic blog post on the topic that really goes into the full details of this change. This release marks the first (regular) release created after this change was made, which is why we feel it is important to mention it here even though you won't see anything different in Pulsar itself.

To continue the trend of "background" changes, we have finally achieved our goal of removing all of the CoffeeScript code in the core editor and packages (a process dubbed "decaffeination") in favour of standard JavaScript. This was a goal started by the Atom team and has been a long time coming as, whilst it was good at the time, many of the features of CoffeeScript can now be found in vanilla JavaScript and migrating away from it allows a more unified codebase that is easier to maintain and lowers the barrier of entry for new contributors. Again, you won't really see anything within Pulsar itself, but this was a big achievement and we can finally draw a close to this little chapter.

Onto some changes you will see in Pulsar. Probably the most obvious one is our deprecation of the previous (and defunct) autoUpdate API. This is a follow-on from a change that first came into our 1.108.0 release to add the new core package pulsar-updater. You can read more about that particular change in the previous release notes. The most obvious result of this is the removal of the message on the about page telling you about automatic updates. This has instead been replaced with a link to the Readme of the pulsar-updater package reflecting the new situation.

On the topic of the about package, we have some nice quality of life changes. The first of which is a change to how we link to the changelog/release notes. Previously, this would link to the changelog state as it was at that specific release. We have changed this to instead link to the relevant section on our master branch changelog. This not only allows us to properly support our rolling releases but also gives our regular releases quick access to look at upcoming changes. We also have a nice little update to improve the responsiveness of the pane when displayed in a narrow format; no longer do things get shoved and squished out of place.

Now onto some bug fixes. The first one here regards a race condition that was found in our autocomplete-plus package, which was causing some weird situations where the suggestion list would open, close, then open again. This has now been fixed (with some handy assistance from the core package keyboard-resolver to help narrow down the problem).

The next is specific to Windows users, where the Pulsar logo was not being shown (and was being replaced with a default blank icon) when Pulsar was set to be the file handler for selected file types. This has now been solved, and the logo should be displaying correctly.

To finish things off, we have one change that improves resource usage quite considerably. However, in this case, we aren't talking about memory or CPU, but our cloud compute costs. What we found is that unnecessary requests were being made to our backend services by the settings-view package (which, amongst other things, is responsible for package management) for Pulsar's core packages. As the core packages aren't really designed to be updated between versions (that is why we have our rolling release) there is no need to poll the backend for information such as the number of downloads or stargazers. The upshot of this change is that we are now saving a not-insignificant amount of money in backend costs. As this whole project is only possible due to our generous donors in the first place, this change means we can make better use of these funds that have been freed up. As always, our costs and expenses are transparent and open on our Open Collective should you wish to see the effect.

And that just about draws things to a close for this release. We have had a particularly busy month with some rather significant changes to all kinds of areas of Pulsar, so we hope you enjoy the update. As ever, a huge thank you to our generous donors and community, without whom this project would not be possible.

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

  - The Pulsar Team


  • Fixed a race condition that could cause autocomplete-plus to ignore user input.
  • Fixed the about package linking to release notes for Pulsar.
  • Reduced the amount of network requests that settings-view creates.
  • Fixed the icon used when registering Pulsar as a file handler on Windows.
  • Removed the autoUpdate API from Pulsar, instead relying on the pulsar-updater package.
  • Prevented warnings in the developer console from appearing when autocomplete suggestions are shown.
  • Removed all CoffeeScript code from Pulsar and core packages.
  • Migrated the majority of our CI to GitHub Actions.

Pulsar

  • Added: about: Make the About page's CSS responsive for narrow panes @DeeDeeG
  • Added: [core & settings-view] Avoid network requests for bundled packages @confused-Techie
  • Fixed: Remove @ from example to fix Documentation CI @Spiker985
  • Fixed: Cirrus: Don't update last good commit if CI skipped @DeeDeeG
  • Fixed: Tree-sitter running fixes (August edition) @savetheclocktower
  • Added: [status-bar & tree-view] Manual Decaf Source @confused-Techie
  • Added: [core] Consolidate app detail logic into single module @confused-Techie
  • Fixed: [about] Link release notes to CHANGELOG.md instead of tagged release of Pulsar @confused-Techie
  • Removed: Remove fs-plus from atom-protocol-handler @Sertonix
  • Fixed: [core] Fix the icon used when registering Pulsar as a file handler in Windows @confused-Techie
  • Added: Decaf Packages Spec @confused-Techie
  • Removed: settings-view: Don't fix repository for core themes @DeeDeeG
  • Added: Cirrus: Skip builds if same commit was previously built @DeeDeeG
  • Fixed: CI: Tweak Cirrus build filter to allow tag pushes @DeeDeeG
  • Added: Automatically rename binaries in CI during Regular releases @DeeDeeG
  • Removed: remove repository fallback @Sertonix
  • Added: [meta] GitHub Actions: Don't sign macOS builds from forked repo PRs @confused-Techie
  • Added: [meta] Ensure Actions can upload Rolling Releases @confused-Techie
  • Added: [meta] Cleanup push trigger, add workflow_dispatch @confused-Techie
  • Added: Migrate most binary building to GitHub Actions @confused-Techie
  • Added: [meta] Add ignorePaths to renovate config @confused-Techie
  • Added: [language- && packages] Manual Decaf Spec Bundle @confused-Techie
  • Fixed: fix links of packages readme @asiloisad
  • Added: [meta] Add new and missing packages to renovate config @confused-Techie
  • Added: Small Update to Docs @confused-Techie
  • Fixed: [autocomplete-plus] Detect when menu state gets out of sync with DOM @savetheclocktower
  • Removed: Remove AutoUpdate functionality from Core @confused-Techie
  • Bumped: Update autocomplete-html package @renovate
  • Added: [core]: Make showing tab title in window title optional @confused-Techie
  • Fixed: [autocomplete-plus] Suppress marked warnings @savetheclocktower
  • Added: [pulsar-updater] Don't notify if Pulsar is running via yarn start @confused-Techie
  • Bumped: bump actions/checkout to v3 @casswedson