F# workspace symbol search classifies function bindings as fields
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- devtools
Research direction
Start by locating the F# workspace symbol search implementation and the native LSP integration test described in the issue. Trace how FCS navigation glyphs become symbol kinds and inspect how the binding AST is available for parameterized and lambda-valued bindings. Done means the test reports functions as Function, preserves ordinary values as Field, and the existing symbol-search cases still pass.
Written by the indexing model from the issue text.
Description
Standard LSP workspace symbol search reports an F# function such as let add (a: int) (b: int) = a + b as SymbolKind.Field (8), rather than Function (12).
FCS navigation supplies a field glyph for these bindings. Mapping the glyph directly loses the distinction between functions and ordinary values. The fix uses the FCS binding AST for parameterized and lambda-valued bindings, while preserving value field kinds and existing namespace/module handling.
Reproduced by a failing native LSP integration test against a real .fsproj with C# disabled. The same test covers F# function/value kinds, C# delegates, case-insensitive search, unsupported plain text, and removing search entries on document close. All 457 existing F# sidecar tests pass unchanged.
Implements [SE-FSHARP-SYMBOLS] and [SHARPLSP-FEATURES-NAVIGATION].
- Dominant language
- TypeScript
- Stars
- 168
- Forks
- 9
- Avg merge
- 2h 49m
- Merged PRs (30d)
- 60
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Nimblesite/SharpLsp
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Nimblesite/SharpLsp#468 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#461 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Nimblesite/SharpLsp#447 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Nimblesite/SharpLsp#444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#442 ·
Maintainers usually reply within 1 day
All issues in Nimblesite/SharpLsp
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
farion1231/cc-switch#8829 ·
Maintainers usually reply within 1 day
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverOpendoc-audit enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100