Commit Graph

41853 Commits

Author SHA1 Message Date
Andrew Dupont
325b6b6b1e [symbols-view] Remap go-to-declaration commands on Windows/Linux 2024-02-15 14:23:41 -08:00
confused_techie
68c88e731d
Merge pull request #924 from pulsar-edit/update-cirrus-token
[meta] Update Cirrus `GITHUB_TOKEN`
2024-02-15 08:07:48 -08:00
Andrew Dupont
ec12b2f0af
Merge pull request #906 from savetheclocktower/tree-sitter-february
Tree-sitter rolling fixes (February)
2024-02-14 21:30:09 -08:00
Andrew Dupont
114a7247de
Merge pull request #861 from savetheclocktower/symbols-view-fixes
`symbols-view` rolling fixes
2024-02-14 21:29:31 -08:00
confused-Techie
d99fe383d4 Update Cirrus GITHUB_TOKEN 2024-02-14 19:01:12 -08:00
Andrew Dupont
9b1e8e5513 Add features to folds:
* A new predicate called `fold.invalidateOnChange` that can be used when a change should automatically invalidate the fold cache for each row in a node's range.
* The ability to use custom predicates in `folds.scm` files. (Previously, captures from `folds.scm` did not consult an instance of `ScopeResolver` in the processing phase.)
2024-02-10 14:36:32 -08:00
Andrew Dupont
82eac2276d [language-typescript] Add syntax highlighting for enums 2024-02-09 22:33:48 -08:00
Andrew Dupont
89686ce03a [language-html] Allow for folding of attribute lists…
…such as in multi-line self-closing tags and multi-line opening tags.

Also fix an issue in fold handling that made it impossible to use `@_IGNORE_` captures in `folds.scm`.
2024-02-09 14:20:34 -08:00
Andrew Dupont
cc20d7055d [language-html] Fix indentation after self-closing tags 2024-02-09 09:51:41 -08:00
Andrew Dupont
732d1d40a6
Merge pull request #913 from savetheclocktower/fix-command-palette-match-highlighting
[command-palette] Guard against failure to highlight a match
2024-02-09 09:17:46 -08:00
Andrew Dupont
7dbbd7afda
Update packages/command-palette/lib/command-palette-view.js
Co-authored-by: Maurício Szabo <mauricioszabo@users.noreply.github.com>
2024-02-09 09:17:25 -08:00
Andrew Dupont
2c5be1eda9 [command-palette] Guard against failure to highlight a match 2024-02-08 19:44:02 -08:00
DeeDeeG
d1bb4c24a2
Merge pull request #901 from pulsar-edit/fix-Rolling-upload-tag-for-Linux-binaries
CI: Fix tag Linux binaries are uploaded to for Rolling
2024-02-06 14:17:05 -05:00
DeeDeeG
ca8ee62ad0
Merge pull request #903 from pulsar-edit/pulsar-rolling-script-version-check-tweak
script: Update version check in Rolling release binary upload script to exclude '-dev' versions
2024-02-06 10:26:03 -05:00
confused_techie
39caa3bece
Merge pull request #908 from pulsar-edit/update-ppm-241d794f326b63b5abdb9769
ppm: Update ppm to commit 241d794f326b63b5abdb9769
2024-02-05 00:52:32 -08:00
Andrew Dupont
c188a26730 Don’t try to lint JS in the vendor directory 2024-02-04 13:36:33 -08:00
Andrew Dupont
e332953260 [language-c] Add missing anchor to constant pattern 2024-02-04 13:36:17 -08:00
Andrew Dupont
cb7d4aad6c [language-c] C/C++ highlighting fixes…
Changes: 

* `#define FOO 1` and `#define FOO` will _always_ scope `FOO` as `constant.other.c`, even when `FOO` is mixed-case or lower-case.
* `#define FOO()` will _always_ scope `FOO` as `entity.name.function.preprocessor.c`, even when `FOO` is mixed-case or lower-case.
* Usages of bare identifiers in other contexts in preprocessor directives should always scope them as `constant.other.c` — unless I’m made aware of any counterexamples where that shouldn’t happen. For example: in `#if TABLE_SIZE > 200`, `TABLE_SIZE` should always be `constant.other.c`, no matter its casing.
* All-caps variable declarations and assignments (`int FOO = 0`, etc.) should scope `FOO` as `variable` rather than `constant`. We should only scope an arbitrary identifier as `constant` if we think it’s been used in the context of a macro definition.

However:

* When deciding whether something outside of a directive refers to a macro constant, we have no choice but to use the `ALL_CAPS` heuristic. Ideally we’d be able to determine that from some sort of analysis of the source code files — but even if we could keep track of that sort of thing in a single buffer, it’d fall down when macro constants _defined in other files_ are used. All we can do here is make a best guess.
2024-02-03 23:39:12 -08:00
Andrew Dupont
10ce3b11a1 Forgot to bump parserSource (the system works!) 2024-02-02 23:57:21 -08:00
Andrew Dupont
5628d089dc Fix argument passing in the Task class
This code snippet sets up logging so that a worker process can call `console.log` and its siblings and have them show up in the renderer process’s console… but it’s trying to destructure the antiquated magical `arguments` collection (which is like an array, but isn’t an array!) and the engine doesn’t seem to like it.

Logging didn’t work for me until I changed this.

This is such a tiny fix, and I don’t have the energy to shelve everything on this branch just to make a separate PR.
2024-02-02 23:10:49 -08:00
Andrew Dupont
3131464ddb [language-php] Update tree-sitter-phpdoc
…and add some `punctuation` scopes for the generic type delimiters.
2024-02-02 23:07:34 -08:00
Andrew Dupont
69fb61e80c Add fallback values for new compulsory syntax variables…
…that were added to the theme generator in https://github.com/pulsar-edit/ppm/pull/123.
2024-02-01 21:35:07 -08:00
Andrew Dupont
32c464b3cb [language-typescript] Highlight escape characters 2024-02-01 21:35:07 -08:00
Andrew Dupont
982917803e [language-php] Fix block comments failing to re-highlight 2024-02-01 21:35:07 -08:00
DeeDeeG
44cabb094b ppm: Update ppm to commit 241d794f326b63b5abdb9769
Includes ppm PRs 122, 123, and 124.
2024-02-02 00:21:10 -05:00
Andrew Dupont
dff70516aa
Merge pull request #905 from savetheclocktower/fix-settings-view-readme-markdown-headings
[settings-view] Don’t display heading anchor icons within a README
2024-02-01 18:29:00 -08:00
Andrew Dupont
b3b16010fa [settings-view] Don’t display heading anchor icons within a README 2024-01-31 23:05:18 -08:00
Andrew Dupont
ca25930510
Merge pull request #902 from savetheclocktower/tree-sitter-hotfix
Fix failing spec
2024-01-29 23:35:44 -08:00
DeeDeeG
5b58255a5b script: Update check to exclude '-dev' versions
These should be rejected as not Rolling versions.
2024-01-30 01:22:17 -05:00
Andrew Dupont
11ebeeab61 Prefer a more graceful solution 2024-01-29 22:00:58 -08:00
Andrew Dupont
14e3562330 Fix failing spec 2024-01-29 21:55:04 -08:00
Andrew Dupont
2dbd99582e
Merge pull request #859 from savetheclocktower/tree-sitter-january
Tree-sitter rolling fixes (January edition)
2024-01-29 21:10:58 -08:00
DeeDeeG
c58bc5f14e CI: Fix tag Linux binaries are uploaded to for Rolling
The Rolling binary upload script gets the version from
package.json in the repository files, not from the binary
itself. So, we need to set this value in the repository's
package.json file, regardless of what version the binary itself has.

The version string in package.json is used by the Rolling upload script
to decide what the tag name will be when creating a new Rolling release.
We want timestamped version strings so they are unique,
and older releases are not overwritten/clobbered/won't have conflicts
(whichever would have happened, not worth finding out).
Besides that this restores the convention we had been uploading
the Rolling release tags with so far.

Set a version timestamp just before building the binaries, like on
the other two platforms. Add this to the outputs of the "build" job
if on Linux. Then read this output in the "test and upload, Linux" job.
Now we have synced timestamps again (as much as we did before building
Linux binaries in a Debian 10 Docker container, anyway).

The script could be updated to check the binary itself,
but this way is easier.
2024-01-30 00:00:10 -05:00
DeeDeeG
4f3bc686e1
Merge branch 'master' into tree-sitter-january 2024-01-29 22:44:18 -05:00
Andrew Dupont
2e36a24fc6 [language-php] Remove firstLineRegex and contentRegex
They don’t gain us anything, and in fact actually cause this grammar to be ranked _below_ the TextMate PHP grammar when they fail.
2024-01-29 18:51:35 -08:00
Andrew Dupont
05de7dba2c [symbols-view] Forgot this part. 2024-01-29 00:56:32 -08:00
Andrew Dupont
51f06683f6 [symbols-view] Implement “prefill with selected text”
When enabled, will use the selected text in your editor as the search query in the symbols list.

Prefers an empty string if the setting is disabled, or if the editor selection spans more than one buffer line.
2024-01-29 00:53:42 -08:00
Andrew Dupont
67e41a1f11 [symbols-view] Infer icons from tag if icon is not present
This should result in _lots_ more icons in the symbols list.
2024-01-28 23:43:21 -08:00
Andrew Dupont
8be56e2559 [symbols-view] Guard against error during teardown…
…that can happen if the broker is destroyed before the providers.
2024-01-28 23:43:21 -08:00
Andrew Dupont
db1a4c50a4 [language-php] Update tags.scm 2024-01-28 23:43:21 -08:00
Andrew Dupont
3565ea822e [symbol-provider-tree-sitter] Add specs for context, tag, icon 2024-01-28 23:43:21 -08:00
Andrew Dupont
58d9a0393e [symbol-provider-tree-sitter] Fix icon display via symbol.icon
Specifying the icon via the `(#set! symbol.icon "foo")` predicate was having no effect.
2024-01-28 23:43:21 -08:00
Andrew Dupont
33b4eea80d Align icons better alongside symbol names 2024-01-28 23:43:21 -08:00
Andrew Dupont
8799fb053b Flesh out service documentation 2024-01-28 23:43:21 -08:00
confused_techie
e999387f82
Merge pull request #858 from pulsar-edit/CI-build-on-older-Linux
CI: build Linux x86-64 binaries on older Linux
2024-01-28 22:17:53 -08:00
confused_techie
b79d47c02d
Merge pull request #870 from Daeraxa/copyright-2024
Update copyright year to 2024
2024-01-28 22:17:36 -08:00
confused_techie
edbb4b8415
Merge pull request #891 from Daeraxa/update-readme-badges
Update README badges
2024-01-28 22:17:26 -08:00
Andrew Dupont
94d41ce82b [language-(java|type)script] Highlight array-destructured variables…
…no matter how deeply they’re nested.

Also highlight `?` in an incomplete ternary.

(Also fix a lot of final segments in the TypeScript highlights file; I’ve been lazily copying-and-pasting and forgetting to change them.)
2024-01-28 11:45:36 -08:00
Andrew Dupont
e49b919703 [language-(java|type)script] Add exhaustive indentation configuration
We are crossing the Rubicon.

https://github.com/orgs/pulsar-edit/discussions/249 is a discussion of specific ways that indentation is different in JavaScript because of the new grammar. We intentionally didn’t try to preserve the indentation decisions in the old TextMate grammar, but this is (predictably) disruptive to some people. We don’t want to punt like legacy Tree-sitter did and rely on the TextMate grammar’s coarse regexes to decide what gets indented, but we can at least make the new indentation system granularly configurable.

This commit makes practically every indentation decision configurable in JavaScript and TypeScript. It groups these settings under a new “Indentation” section in each package’s settings.

I might decide that this goes too far and roll back the granular settings for `{`, `[`, and `(`, but the other indentation hints are absolutely matters of taste, so it’s only proper that users can choose to disable them.

In the long run, we could _consider_ allowing users to swap in another indentation engine altogther, much like #895 proposes for folds. That would let us legitimately offer users a way to opt into “the way the TextMate grammar does it” without affecting other users.

Another stopgap option would be to add a way for a user to disable indentation hinting altogether for a given grammar.
2024-01-28 11:21:59 -08:00
Andrew Dupont
5855241698 Fix issue with looking up objects in atom.config
…when a project-specific config is present.

Most people don't use a project-specific config, which is why this bug has been present for ages. Read the new spec for an explanation.
2024-01-28 00:47:32 -08:00