Releases: pulsar-edit/pulsar
v1.122.0
Pulsar 1.122.0: Frightfully Good
Greetings! In today's Pulsar release, we have:
- Bug-fixes, refactors and enhancements for Tree-sitter, mostly focused on C and PHP. (shout out to
@savetheclocktower
for these monthly enhancements!) - Launcher improvements:
- A fix for the
pulsar
andppm
bins being removed without being replaced upon upgrading via the.rpm
package (shout out to@am97
, thank you for this fix!) - The AppImage now supports more launch flags, such as
--wait
, and-p --version
also works to print theppm
version info (shout out to@savetheclocktower
for multiple PRs leading up to this, and this PR itself.)
- A fix for the
- A bug involving an error in autocomplete-plus is avoided (shout out to
@Digitalone1
) - SQL state storage implementation for the app is available by opt-in (shout out to
@mauricioszabo
) - Replacing a deprecated Electron API call
shell.moveItemToTrash
(shout out to@savetheclocktower
once again!)
Happy coding, and see you amongst the stars.
- Pulsar team
- Added a SQL State Storage alternative to IndexedDB (opt-in, off by default).
- Repackaged the AppImage so it uses our launcher script internally (supports more CLI/launch flags).
- [language-php] Highlighted βnull-safeβ property access correctly.
- [language-c] Scoped template delimiters properly in C++.
- [language-c] Consolidated common highlighting queries between the C and C++ grammars for more consistency in syntax highlighting.
- Fixed incorrect behavior in certain scenarios for βFold at Indent Level Xβ commands.
- Fixed exception when resolving divided folds (e.g.,
#ifdefs
in C/C++). - Avoided "length of null" error in autocomplete-plus for the PHP Tree-sitter grammar.
- Preserved
/usr/bin/pulsar
and/usr/bin/ppm
on RPM updates. - [tree-view] Moved to a more modern API for file removal in preparation for an Electron upgrade.
Pulsar
- Added: Adding a SQL State Storage instead of IndexedDB @mauricioszabo
- Fixed: Fix AppImage executable @savetheclocktower
- Fixed: Tree-sitter rolling fixes, 1.122 edition @savetheclocktower
- Fixed: Fix reading error of length property on null @Digitalone1
- Fixed: Preserve
/usr/bin/pulsar
and/usr/bin/ppm
on RPM updates @am97 - Updated: [tree-view] Remove deprecated usage of
shell.moveItemToTrash
@savetheclocktower
v1.121.0
Pulsar v1.121.0: CLI improvements? Now you're speaking my language.
For this edition of Pulsar, along with the usual bug fixes, we've particularly focused on CLI usage and up-to-date language support.
On Linux and macOS, the pulsar -p
command (via the pulsar.sh
launcher script) will now invoke ppm
directly without having to launch Pulsar first. (We shipped the equivalent enhancement for Windows in the last release.)
The Linux CLI has some further enhancements. Itβs now much better at detecting where your Pulsar installation is on disk; this should help those who have extracted Pulsar from the .tar.gz
tarball distribution. (Building on this, we hope we can make CLI usage easier for our AppImage users in the next release.)
Speaking of the CLI: weβve fixed an issue with ppm
that was affecting only users with Apple Silicon Macs. An old, hard-coded value in ppm
, from before Apple Silicon existed, broke several community packages with native C/C++ module dependencies -- x-terminal-reloaded
and autocomplete-paths
, to name just two examples. Before now, these packages wouldnβt install correctly on Apple Silicon macs, and would need manual fixing from the terminal. But now, those packages will build and rebuild successfully on your ARM64 machine.
Meanwhile on Windows, the ability to add Pulsar to the PATH has been moved from the settings menu to the installer. This approach should work much more reliably, and is able to clean up the user's PATH during an uninstall.
Inside the editor weβve got a number of improvements to language grammars. Our underlying web-tree-sitter
library has been bumped to the latest stable version, as have our grammars for CSS, Markdown, JavaScript, TypeScript, and HTML.
Under the hood, thereβs been a major refactor of how Tree-sitter indentation logic is organized in our codebase. This doesnβt have direct effects on the user, but should make it easier to iterate on indentation logic and deliver more features to the indentation hinting system.
In fact, thereβs one new feature for indentation: a new @match.next
capture. Itβs not something that a grammar author would commonly need, but it allows them to do things that werenβt possible before β for instance, to move the indentation level to its proper place after a βhanging indent.β
In the coming releases, some built-in grammars may take advantage of this feature to deliver indentation hinting options that come closer to "reading your mind".
That's everything this time around, and as always a gracious thank you to our wonderful community, all those that contribute to issues, discussions and pull requests, and help make Pulsar possible through donations, bug reports, and helping to support other users.
Until next time, happy coding, and see you amongst the stars!
- The Pulsar team
- Updated
web-tree-sitter
to version 0.23.0. - [language-css] Updated
tree-sitter-css
to the latest version. - [language-gfm] Updated
tree-sitter-markdown
to the latest version. - [language-html] Updated
tree-sitter-html
andtree-sitter-embedded-template
to their latest versions. - [language-javascript] Updated
tree-sitter-javascript
to the latest version. - [language-typescript] Updated
tree-sitter-typescript
to the latest version. - Added a new
@match.next
capture for advanced control of how indentation should change from one line to the next. - Added new indentation-specific query predicates
indent.matchesComparisonRow
andindent.matchesCurrentRow
for comparing arbitrary positions in a Tree-sitter node tree to the operative rows in an indentation suggestion query. Makes it possible to say things like βdecrease the indent on line 10 if a statement ends on line 9.β - Renamed indentation directives
indent.matchIndentOf
andindent.offsetIndent
toindent.match
andindent.offset
, respectively. The old names still work as aliases. - Improved the command-line
pulsar
scriptβs ability to find the userβs Pulsar installation location on Linux. - On macOS and Linux,
pulsar -p
now invokesppm
without having to launch Pulsar itself. - Added options to the Windows installer to add Pulsar and PPM to the PATH
- Fixed
ppm rebuild
command on ARM (Apple Silicon) Macs
Pulsar
- Fixed: Tree-sitter rolling fixes: 1.121 edition @savetheclocktower
- Updated: Update ppm to commit 97f4d201be013157756a76008bf0cb55e6a1fe35 @savetheclocktower
- Fixed: Experiment: Redirect
-p
/--package
toppm
viapulsar.sh
β¦ @savetheclocktower - Added: [windows] Add PATH manipulation to Pulsar installer @confused-Techie
- Updated: CI: Update Cirrus Rolling upload token @DeeDeeG
PPM
- Fixed: Remove hard-coded architecture on Mac @savetheclocktower
- Updated: Begin less reliance on
async
package: Await as we go @confused-Techie
v1.120.0
Pulsar 1.120.0: Keeping it clean!
This release is fully of housekeeping, fixes, Tree-sitter improvements and more.
Our icon on Windows got some TLC to look less crunchy! It should look better just about everywhere (on the taskbar, in the installer, Pulsar's window title bar, explorer context menu, you name it!)
There's our regular Tree-sitter improvements, like indentation improvements in JavaScript and Typescript, improved syntax highlighting in TypeScript, with general improvements to code folding, and new hackability on query files.
We've enhanced the functionality of the 'pulsar -p' switch for accessing 'ppm', and checked its correctness. No more printing the versions for Pulsar when you meant to print the version of 'ppm'! Arguments / subcommands should make it safely to 'ppm' as you intended. (On Windows -- enhancements will come to Linux and macOS soonβ’οΈ!) Further with PPM stale dependencies have been removed and updated as needed.
We now handle indents/leading whitespace better for all the snippets users out there! Snippet fearlessly, now with proper indentation handling!
And, last but not least, we fixed a stray link in 'CONTRIBUTING.md'.
As always thanks a ton for all of the support for the project, and we look forward to seeing you amongst the stars.
- The Pulsar Team
- Resolved some issues of using
pulsar -p
to accessppm
in the command line on Windows. - Added a new icon for Pulsar on Windows, increasing its visual fidelity in most locations.
- [snippets] Fixed an issue with expanding snippet variables in certain scenarios if the snippet inserted new lines into the buffer.
- Updated misconfigured links in the
CONTRIBUTING.md
file. - [ppm] Resolved an issue that could prevent renaming an existing package.
- Various Tree-sitter improvements (folds, indents, custom queries, grammar updates...)
Pulsar
- Fixed: Tree-sitter rolling fixes 1.120 edition @savetheclocktower
- Updated: ppm: Update ppm to commit d9bcff111146547e1f4dec63 @DeeDeeG
- Fixed: [snippets] Fix incorrect range traversal when resolving variables @savetheclocktower
- Added: [windows] Improve Icon @confused-Techie
- Added: Use a different strategy for
pulsar -p
on Windows... @savetheclocktower - Fixed: CONTRIBUTING.MD link to section fixed @gsabatini2016
PPM
- Updated: Begin less reliance on
async
package: Await as we go @confused-Techie - Fixed: Fix incorrect behavior on package rename @savetheclocktower
- Updated: Update many dependencies @DeeDeeG
- Revert: Revert "CI: Work around a weird bug in Yarn v1.x" @DeeDeeG
v1.119.0
Pulsar v1.119.0 is live!
While a smaller release this time around, v1.119.0 still manages to pack a punch.
For macOS, we've gone to great lengths to ensure Pulsar should build just fine on macOS 13+, while our Linux users get greater compatibility for DevTools on various platforms. For our programmers, there's been more of the constant incremental improvements to various languages' built-in syntax highlighting and code folding this time around, with a focus on PHP, Python, Javascript, Typescript, Shell script, and C.
As always thanks a ton to all of those that support the project and keep it moving forward, we appreciate you all, and look forward to seeing you amongst the stars.
- The Pulsar Team
NOTICE
Originally, the binaries from our normal "Pull Request" CI build (which produces unsigned binaries) were accidentally uploaded to this release, instead of the binaries from the special "tag push" CI build (which signs the macOS binaries). In order to provide you with signed macOS binaries, we are re-uploading the Intel macOS binaries and updating SHA256SUMS.txt
to reflect this. As such the following binaries have been swapped out for the correct versions, with the checksum being updated as well for the following files:
Intel.Mac.Pulsar-1.119.0-mac.zip
Intel.Mac.Pulsar-1.119.0.dmg
- Changed
language-php
to continue syntax-highlighting even when encountering unbalanced PHP tags. (Avoid throwing a syntax error) - Indentation, fold, and highlighting fixes in
language-python
,language-javascript
,language-typescript
,language-shell
andlanguage-c
. - Worked around API breakage (FreeBSD
libiconv
vs GNUlibiconv
) in theiconv
library shipped in macOS 13+ - Fix
--no-sandbox
flag not being applied to the.desktop
launcher on Linux (Fixes Dev Tools)
Pulsar
- Tree-sitter rolling fixes, 1.119.0 edition @savetheclocktower
- Rewrite
tree-view.js
@savetheclocktower - Fix macOS binaries by vendorizing
libiconv
@savetheclocktower - Link to Homebrew version of
libiconv
... @savetheclocktower - Revert "Merge pull request #810 from pulsar-edit/fix-on-change-cursor-pos" @savetheclocktower
- electron-builder: Add '--no-sandbox' launch arg for Linux build targets @DeeDeeG
superstring
- Candidate for new
master
@savetheclocktower
v1.118.0
Hot dog, it's another Pulsar release!
Get your grills ready, Pulsar v1.118.0 is cooking with gas! This release brings lots of love to syntax highlighting, along with a zesty sprinkling of features and fixes.
We've got Tree-sitter fixes and improvements, including improved documentation around Tree-sitter's usage, an updated PHP parser, fixed syntax quoting on Clojure, as well as enhanced Clojure highlighting support for metadata and "def" elements, as well as improved injection points for Clojure. EDN files are back to being detected as Clojure, but will highlight correctly as EDN. Tasty!
Within the Pulsar application the new setting core.allowWindowTransparency
lets users set the background of the editor to support transparency, although transparent CSS styles must be set by a theme or user stylesheet for Pulsar to actually be transparent. The textChanged
property is now accurate when characters are deleted.
The Tree-sitter syntax highlighting system now has a new test for queries ancestorTypeNearerThan
which helps matching the first type as an ancestor, as well as supporting a second buffer
argument in the content
field of addInjectionPoint
for easier customization.
Finally, for our community package developers, they will be glad to hear that first time publication issues have been resolved with a rewrite of the ppm publish
command, improving the workflow, and ensuring things work properly with the updated backend. Please feel free to share what you've been cooking by publishing your packages!
As always, thanks a ton to all of our users and supporters for sticking with the Pulsar project, and until next time, happy coding, and see you amongst the stars!
- The Pulsar Team
- Various tree-sitter grammar improvements
- Docs fixes
- A parser update for PHP
- Miscellaneous grammar fixes and improvements
- Added a preference
core.allowWindowTransparency
so that themes and user stylesheets
can make editor windows' backgrounds transparent. - Added a new modern tree sitter "test" for highlight query -
ancestorTypeNearerThan
that matches if it finds the first type as an ancestor, but doesn't match if
any "other" ancestors are found before - Syntax quoting and unquoting in Clojure now highlights correctly, and also
highlights full qualified keywords differently than generated ones content
field of addInjectionPoint for modern-tree-sitter now supports a second
buffer
argument, for better customization if one wants to- EDN is back to being detected as Clojure (for compatibility) but highlights as EDN
- Fixed syntax quoting on Clojure grammar (newer tree-sitter), fixed some
injection points on Clojure. Added support for highligting metadata, and added
better support for "def" elements (for example - doesn't scopedefault
or
definition
as adef
, but highlightsp/defresolver
) - Fixed
textChanged
property to be accurate when deleting characters - Fixed
ppm publish
for publishing brand new packages
Pulsar
- Fixed: Tree-sitter rolling fixes, 1.118 edition @savetheclocktower
- Added: src: Allow windows to be transparent, behind a pref (off by default) @DeeDeeG
- Added: Another batch of Clojure enhancements @mauricioszabo
- Fixed: Fix
onDidChangeCursorPosition
callback event property on deleting characters @mauricioszabo - Bumped: Update ppm to commit 3542dee00f4622f7458f2f65f05e5 @DeeDeeG
- Updated: Cirrus: Update Rolling upload token @DeeDeeG
v1.117.0
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
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
, andBLOCK_COMMENT_END
. - Added ability to use βsimpleβ transformation flags in snippets (like
/upcase
and/camelcase
) withinsed
-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
andBLOCK_COMMENT_END
@savetheclocktower - Added: Extend support for simple transformation flags to sed-style replacements @savetheclocktower
v1.115.0
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
ofweb-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
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