Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Swift grammar, adding 'any' and 'await' keywords. #9586

Merged
merged 1 commit into from
Feb 12, 2024
Merged

Updated Swift grammar, adding 'any' and 'await' keywords. #9586

merged 1 commit into from
Feb 12, 2024

Conversation

7ombie
Copy link
Contributor

@7ombie 7ombie commented Feb 10, 2024

This updates runtime/queries/swift/highlights.scm, adding any and await as keywords. It also removes a todo that was already done, and updates the upstream-comment on Line 1 with newest commit ID for tree-sitter-swift (main).

The languages.toml file was also updated, setting Swift's source.rev to the newest commit ID for tree-sitter-swift (with-generated-files).

There are a handful of other issues with Swift syntax-highlighting, but they're all upstream, so I'll summarize them here, and open issues with tree-sitter/tree-sitter-swift:

  • defer should be a keyword
  • inout is highlighted, but borrowing and consuming are not
  • Self and self should be highlighted the same way (Self is also a builtin variable)
  • the new if- and switch-expressions are not parsed correctly
  • in Xcode, try is highlighted as a keyword, and ? and ! as suffix operators (when in suffix position), but tree-sitter tokenizes try? and try! as single (operator) tokens

P.S. Thanks again to @the-mikedavis and @Dispersia. I really appreciate your help.

@the-mikedavis the-mikedavis added S-waiting-on-review Status: Awaiting review from a maintainer. A-language-support Area: Support for programming/text languages labels Feb 10, 2024
@7ombie
Copy link
Contributor Author

7ombie commented Feb 12, 2024

I spoke to @alex-pinkus (the tree-sitter-swift maintainer), and he believes most (if not all) of the issues I've listed are issues for his project. He's very helpful, and open to PRs, so I'm optimistic about polishing the Swift grammar.

@pascalkuthe pascalkuthe merged commit 204c370 into helix-editor:master Feb 12, 2024
6 checks passed
alex-pinkus added a commit to alex-pinkus/tree-sitter-swift that referenced this pull request Feb 18, 2024
In helix-editor/helix#9586, the Helix editor added highlighting for the
`any` keyword.

However, while reviewing that, I noticed that both `some` and `any`
should be more specific: these keywords are legal as identifiers, but
should not be highlighted as identifiers when they are keywords.

For instance, I can write:
```
let any: any Protocol = AnyImplementation()
```

In this example, only the second `any` should be highlighted.

See discussion on #351
alex-pinkus added a commit to alex-pinkus/tree-sitter-swift that referenced this pull request Feb 18, 2024
In helix-editor/helix#9586, the Helix editor added highlighting for the
`any` keyword.

However, while reviewing that, I noticed that both `some` and `any`
should be more specific: these keywords are legal as identifiers, but
should not be highlighted as identifiers when they are keywords.

For instance, I can write:
```
let any: any Protocol = AnyImplementation()
```

In this example, only the second `any` should be highlighted.

See discussion on #351
cosmikwolf pushed a commit to cosmikwolf/helix that referenced this pull request Feb 26, 2024
postsolar pushed a commit to postsolar/helix that referenced this pull request Apr 4, 2024
mtoohey31 pushed a commit to mtoohey31/helix that referenced this pull request Jun 2, 2024
Vulpesx pushed a commit to Vulpesx/helix that referenced this pull request Jun 7, 2024
smortime pushed a commit to smortime/helix that referenced this pull request Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-language-support Area: Support for programming/text languages S-waiting-on-review Status: Awaiting review from a maintainer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants