Add syntax highlighting for project symbol search#188
Add syntax highlighting for project symbol search#188da-r-k wants to merge 2 commits intozed-extensions:mainfrom
Conversation
Implement `label_for_symbol` to provide syntax-highlighted labels in the
project symbol picker (cmd-t). Without this, Java symbols appear as
plain grey text.
Each symbol kind generates a Tree-sitter-parseable code snippet wrapped
in the appropriate context (e.g. methods/fields inside `class _ { }`)
so the Java grammar can produce correct AST nodes for highlighting.
Supported symbols:
- Class, Interface, Enum: keyword prefix + name
- Method/Function: return type + name + params (Java declaration order)
- Constructor: name + params
- Field/Property: type + name (Java declaration order)
- Constant, EnumMember, Variable: highlighted name
- Package/Module/Namespace: keyword prefix + name
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
We require contributors to sign our Contributor License Agreement, and we don't have @da-r-k on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'. |
|
@cla-bot check |
|
We require contributors to sign our Contributor License Agreement, and we don't have @da-r-k on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'. |
|
The cla-bot has been summoned, and re-checked this pull request! |
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
|
Thanks for the PR. Please format the code with and push another commit |
|
@da-r-k I've tried the extension but it doesn't seem to be working as intended. For example, when searching for the symbol Media, see snippet below, I was just getting Media in the list without any of the additional information about it Are these changes depending on a change to the grammar? |
|
@da-r-k@da-r-k, I’ve been using the wrong branch. I assumed gh would have retrieved the correct one, but apparently, it wasn’t the case. Is fuzzy search something that the LSP needs to support to be used or is it up to us to enable it? |
|
@tartarughina Yes. JDTLS uses CamelCase fuzzy search. So if you search for |

Summary
Implements
label_for_symbolto provide syntax-highlighted labels in the project symbol picker (cmd-t). Currently, Java symbols appear as plain grey text with no highlighting, unlike Rust and other languages that already implement this.Ref: zed-industries/zed#36383, zed-industries/zed#37176
Changes
label_for_symbolto theExtension for JavaimplSymbolandSymbolKindfrom the extension APIclass _ { }since Java's Tree-sitter grammar requires class context for these declarationsvoid doWork(String, int),String fieldNameclass,interface,enum,packageSupported symbol kinds
class MyClassclass MyClass {}interface Runnableinterface Runnable {}enum Statusenum Status {}MyClass(String, int)class MyClass { MyClass() {} }void doWork(String, int)class _ { void doWork() {} }String nameclass _ { String name; }MAX_SIZEclass _ { static final int MAX_SIZE; }ACTIVEenum _ { ACTIVE }countclass _ { int count; }package com.examplepackage com.example;Screenshot: