Releases: pulsar-edit/pulsar
v1.114.0
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
whendisableMode
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 toppm 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
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
- 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
Hotfix: Pulsar v1.112.1
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
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 Pulsarfuzzy-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
ScopeResolver
s @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
- Bumped: fix(deps): update dependency semver to v7.5.2 [security] @renovate
- Added: Configure Renovate @confused-Techie
- Added: Migrate from
rimraf
to NodeJSfs
@confused-Techie - Added: Implement Codacy Recommendations @confused-Techie
- Removed: Prune outdated Deps @confused-Techie
- Removed: Remove unused Variables @confused-Techie
- Added: Add Codacy and Friends Configuration @confused-Techie
- Removed: src: Delete unused code in uninstall.js @DeeDeeG
- Fixed: src: Fix usage/help text (and error message) for -b/-t flags for ppm install @DeeDeeG
- Added: Repository Cleanup @confused-Techie
- Fixed: Fix Newer NodeJS CI @confused-Techie
- Fixed: src: Stop pinging backend during package uninstalls @DeeDeeG
- Added: Asyncify without topmost interface @2colours
- Fixed: CI: Work around a weird bug in Yarn v1.x @DeeDeeG
- Fixed: src: Rebrand two lines of "ppm --version" output @DeeDeeG
- Bumped: deps: Bump nan for compatibility with newer NodeJS @DeeDeeG
- Fixed: Fix Error Handling @confused-Techie
- Removed: Remove
request
Migrate tosuperagent
&& Fix CI @confused-Techie
github
- Added: lib: Allow parent scopes when checking if each required scope is set @DeeDeeG
v1.111.0
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 viaatom.ui
. This exposes amarkdown
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
, fordugite
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 Python3.12.x
@confused-Techie - Fixed: Update
web-tree-sitter
to includeisalnum
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 bumpdugite
to 2.1.0 @DeeDeeG
whats-my-line
- Bumped: Pin
dugite
to2.1.0
@confused-Techie - Bumped: Bump dugite && Bump
package.json
version @confused-Techie - Added: Add dugite tests @confused-Techie
- Removed: Remove TypeScript @confused-Techie
- Added: Setup Tests and Modernize @confused-Techie
v1.110.0
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 withinwrap-guide
when changingwrap-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
- Bumped: Update npm and node-gyp, for macOS signing fix @DeeDeeG
- Removed: Remove remnants of Coffeescript building @2colours
- Added: Update unpublishing wording @Daeraxa
- Added: Migrate to
second-mate
and removefirst-mate
@confused-Techie - Added: Cleanup
visualStudioIsInstalled()
@confused-Techie - Decafed: Decaf Source @confused-Techie
- Fixed: Make
postinstall
scripts work on Windows with spaces in cwd path @confused-Techie - Added: Move Spec Decaf PRs into
master
@confused-Techie - Bumped: Switch to our npm fork, to get newer node-gyp (node-gyp 9.x) @DeeDeeG
- Decafed: Decaffeinate remaining spec files from list-spec on @GuilleW and @2colours
- Decafed: Decaffeinate link spec @GuilleW and @2colours
- Decafed: Decaffeinate install spec @GuilleW and @2colours
- Decafed: Decaffeinate init spec @GuilleW and @2colours
- Decafed: Decaffeinate help spec @GuilleW and @2colours
- Decafed: Decaffeinate featured spec @GuilleW and @2colours
- Decafed: Decaffeinate enable spec @GuilleW and @2colours
- Decafed: Decaffeinate docs spec @GuilleW and @2colours
- Decafed: Decaffeinate disable spec @GuilleW and @2colours
- Decafed: Decaffeinate develop spec @GuilleW and @2colours
- Decafed: Decaffeinate config spec @GuilleW and @2colours
- Decafed: Decaffeinate command spec @GuilleW and @2colours
- Decafed: Decaffeinate clean spec @GuilleW and @2colours
- Decafed: Decaffeinate ci spec @GuilleW and @2colours
- Decafed: Decaffeinate apm cli spec @GuilleW and @2colours
- Decafed: Decaffeinate spec helper (updated) @GuilleW and @2colours
v1.109.0
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 thepulsar-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, addworkflow_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
v1.108.0
Great Scott! A new Pulsar release.
Welcome to our latest Pulsar release! We have some really exciting new features this month that we can't wait to share.
To kick things off, we have a brand new core package, pulsar-updater
. We recently featured this on our monthly Community update , but in case you missed it (or simply just want to read more about it), pulsar-updater
is a new package designed to help notify users about new Pulsar releases and where they can get them. As always, we are open to feedback, especially when we have brand new functionality like this, so please let us know via any of our social channels if you have anything for us.
Next, we have yet more grammars for our modern Tree-sitter implementation. If you have missed any details on this, then you can read more on our blog. The two new grammars in question are for Markdown and YAML. So what benefits does this give us? Well, for example, with Markdown, this provides significantly more accurate highlighting than the existing "Textmate" grammar; it provides HTML syntax highlighting as well as YAML frontmatter support (a common addition to Markdown documents these days, particularly for static site generators), and it allows us to clean up some of the scope names to suit a more conventional approach to naming. All these features should provide a much better Markdown writing experience in Pulsar and allow us to easily keep it up to date with anything new we might want to add in the future.
On the topic of Markdown we also have a rather large update to our markdown-preview
package, which provides a window to display the rendered output of your Markdown documents. The big change here is the syntax highlighting displayed within code blocks specified via a "language identifier". The list of these supported identifiers was rather out of date, and the world had moved on around it, so the decision was made to bring this up to date with the behaviour that people expect from such functionality. We go into far more detail about this change in our Blog post so have a read of that if you want to know the full details about this change.
Last, but definitely not least, we have finally begun the migration from apm
to ppm
. When we started the Pulsar project, one of the first things we did was rename the "Atom Package Manager" to the "Pulsar Package Manager" for obvious reasons. However, under the hood, you would still find apm
binaries and files; this was particularly relevant for Windows users, for which there was no automatic PATH
registration. The good news is that we have begun the transition to change them. For the time being, apm
will remain alongside ppm
until we can be sure we haven't hit any unforeseen issues.
And with that, we bring this to a close. As ever, a huge thank you to all of our community members and especially our donors, without whom this project just wouldn't be possible.
Until next time, happy coding, and see you amongst the stars!
- The Pulsar Team
- Restored ability for
less
files in packages to use inline JavaScript inside backticks. - Fixed a syntax highlighting issue inside the
styleguide
package. - Fixed an issue with rubygems timing out on ARM Linux workflow.
- Rewrote Tree-sitter scope predicates to use
#is?
and#is-not?
where applicable. - Ensure that project-specific setting overrides don't leak to the user's config file when the settings UI is visited.
- Added a feature in
markdown-preview
that adds support for Linguist, Chroma, Rouge, and HighlightJS for language identifiers in fenced code blocks. - Fixed the
TextMate
language-toml
grammar to properly support whitespace where-ever it may appear. - Added a Tree-Sitter grammar for YAML files.
- Added a new core package
pulsar-updater
to help users update Pulsar. - Added
ppm
andppm.cmd
binaries/launchers within ppm. This allows easier integration of correctly named binaries on more systems in more contexts (especially Windows). Existingapm
andapm.cmd
binaries/launchers are still there for the time being. - Added a modern Tree-Sitter grammar for Markdown files.
Pulsar
- Added: Add the Tree-Sitter Markdown grammar @savetheclocktower
- Fixed: [pulsar-updater] Correct deb-get instructions ( + readme change) @Daeraxa
- Added: Tree-sitter running fixes @savetheclocktower
- Added: Add
pulsar-updater
as a core bundled Package @confused-Techie - Added: Manual Decaf Bundle (
autocomplete-atom-api
,autoflow
,deprecation-cop
) Source @confused-Techie - Bumped: [Time Sensitive] Update Cirrus Encrypted token for GitHub Access @confused-Techie
- Added: [core]: Transforming Deprecated Math Usage - Support for Variables @confused-Techie
- Added: Add Tree-sitter grammar for YAML @savetheclocktower
- Fixed: [language-toml] Add whitespace rule to values @arite
- Added: [markdown-preview]: Support for nested table objects in Yaml Frontmatter @confused-Techie
- Added: [markdown-preview]: Revamp Fenced Code Block Language Identifiers @confused-Techie
- Bumped: ppm: Update submodule to 49c8ced8f9552bb4aeb279130 @DeeDeeG
- Fixed: [settings-view] Don't let project-specific settings pollute the UI @savetheclocktower
- Added: [modern-tree-sitter] Overhaul Tree-sitter scope tests @savetheclocktower
- Fixed: fix(arm): use rubygems from APT @cat-master21
- Added: [language-*]: Manual Spec Decaf (Part 1) @confused-Techie
- Fixed: [styleguide] Fix error when styleguide is shown... @savetheclocktower
- Bumped: Bump
less-cache
to 2.0.1 @savetheclocktower
ppm
- Added: Add 'ppm' bins to complement existing 'apm' bins @DeeDeeG
- Fixed: Replace "apm" by "ppm" in help messages. @azuledu
- Bumped: Update OS, actions, node @Spiker985
Hotfix: Pulsar v1.107.1
Hotfix for important cosmetic issues in the bundled github
package.
This package missed updates to be compatible with the breaking changes in Less Style Sheet syntax, and needed to be updated to preserve the intended styling of the GitHub and Git panes.
Includes this PR: #639 to fix this issue: #638
See the v1.107.0 release for all the other changes since v1.106.0.
v1.107.0
Fresh off the CI press: Pulsar 1.107.0 is available now!
Another month and another Pulsar release! This month features a bunch of those all important quality-of-life updates. We have a whole host of bugfixes and upgrades for you along with a sprinkling of new features.
To kick things off we have now resolved an issue which has been hanging around since we began this project. As we no longer had the same method of installing the software as Atom, we created an issue for Windows users where the pulsar
and ppm
were not being added to PATH. The upshot of this was some rather important Pulsar features were no longer working by default on Windows - namely the ability to launch pulsar by just running pulsar
in run or cmd/powershell (you can find more in our launch manual on how you can use this to open Pulsar directly to a particular file, line and even column). You can also run pulsar --help
to display all the available options.
Please note that whilst we have this working now for the most part, the -p
/--package
option as well as ppm
still needs some more development work. However until this has been completed you can still access Pulsar package management from the command line on Windows by simply using apm
(what ppm
is still named underneath) in place of those commands.
Next we have an update to our less-cache
package which bumps the version of less used by Pulsar from 3.12.2
to 4.1.3
which adds some new functionality but also introduces a breaking change regarding using division in math expressions. The good news is that Pulsar will automatically attempt to fix those issues during load. You can read more about this in our recent community update blog post on this subject.
To continue the trend of new developments with the modern Tree-sitter implementation, we now have a new grammar for TOML
files as well as a couple of fixes to some issues that have been discovered with the new implementation.
Another nice feature recently added is a new API endpoint - atom.versionSatisfies()
. No longer do package maintainers (or any other Pulsar hacker) need to write their own way of checking for Pulsar versions, we now have an inbuilt way of doing it which will hopefully alleviate some of the problems we have seen with some packages using (let's just say) "less-than-ideal" methods of version checking. You can read more about it on the PR.
And lastly, in case you missed it from the community update, we have resolved an issue due to a downstream dependency that was causing Pulsar to get falsely flagged by virus checkers. You can read more about this from the update post.
And that brings us to a close for the 1.107.0
release notes. As ever a huge thank you to our wonderful donors and community members who not only make this project possible but worthwhile.
Until next time, happy coding and see you amongst the stars!
- The Pulsar Team
- Fixed a number of issues with the experimental modern Tree-sitter grammar mode
- Pulsar can now be added to the PATH on Windows, via the "System" pane within Settings View.
- Bumped
less-cache
tov2.0.0
which usesless@4.1.3
. This adds many new features of Less, while causing breaking changes to existing Less StyleSheets. Read more about these changes here. Pulsar will attempt to automatically repair any breaking changes in any package style sheets, while emitting deprecations. - Fixed a bug that would render files unable to be clicked with sticky headers enabled on One-Dark and One-Light themes.
- Added a Modern Tree-Sitter TOML Grammar.
- Added a new API endpoint within Pulsar of
atom.versionSatisifes()
to allow packages to safely check the version of Pulsar, instead of having to do so themselves. - An issue in a downstream dependency has been resolved that improperly flagged Pulsar as malicious.
Pulsar
- Added: Improved Windows Install (
PATH
,ATOM_HOME
,InstallLocation
) @confused-Techie - Fixed: Running PR for Tree-Sitter fixes @savetheclocktower
- Added: [autocomplete-css]: Manual Decaf of Source @confused-Techie
- Fixed: [welcome]: Ensure Changelog Always Shows if enabled, and version hasn't been dismissed @confused-Techie
- Bumped: [autocomplete-plus] Maintenance - Deps bumps, remove CoffeeScript files @confused-Techie
- Fixed: Fix tree-view sticky headers of one-dark & one-light themes @asiloisad
- Fixed: [spell-check]: Remove usage of reserved word @confused-Techie
- Added: [core]: Implement API on
atom.
to compare Pulsar Versions @confused-Techie - Added: [settings-view]: Manual Decaf (source) @confused-Techie
- Bumped: [core]: Bump
less-cache
tov2.0.0
Upgradesless
to4.1.3
@confused-Techie - Added: [core]: Bundle
spell-check
@confused-Techie - Bumped: Update dependency semver to v7.5.2 [SECURITY] @renovate
- Added: [modern-tree-sitter] Add TOML tree-sitter grammar @savetheclocktower
- Fixed: [language-toml]: Allow spaces within Array @confused-Techie
- Fixed: Pin
es5-ext
topulsar-edit/es5-ext
removing code flagged as malicious @confused-Techie - Bumped: [git-diff] Bump all Deps @confused-Techie
- Bumped: Update dependency semver [SECURITY] @renovate
- Fixed: [autocomplete-css] Get tests passing for new CSS tree-sitter grammar @savetheclocktower
- Bumped: [dalek] Bump dependencies to latest, fix links @confused-Techie
- Bumped: Update dependency marked to v5.0.3 @mauricioszabo
less-cache
- Bumped: Bump
1.1.1
=>2.0.0
@confused-Techie - Bumped: Bump
less
3.12.2
=>4.1.3
@confused-Techie - Added: Repository Cleanup + CoffeeScript tool Removal (Depends on #2) @confused-Techie
- Added: Manual decaf of source files @confused-Techie
- Added: Implement Repo Tests @confused-Techie