ionide / ionide-fsgrammar

Shared Textmate Regex Style F# Language Grammar
MIT License
35 stars 36 forks source link

Bug: Slice parameters are tokenized as part of the function itself #182

Open Duckapple opened 1 year ago

Duckapple commented 1 year ago

Describe the bug Slice parameters are tokenized as part of the function itself

To Reproduce Steps to reproduce the behaviour:

  1. Insert the following test into a text file (the other numbers in the screenshot are to demonstrate the color they should have):
    let test1 (word: char list) = List.rev word[0 .. 1]

Expected behaviour I would expect the numbers to still be highlighted as numbers, though I think parsing them as expressions is the correct move.

Screenshots image

Environment (please complete the following information):

Additional context I would fix this myself, but I don't have the expertise with TextMate grammars I'd probably need. It also seems like GitHub gets this part right with its grammar.

MangelMaxime commented 1 year ago

Hello,

Looking at the inspector I think the problem is not in the fsgrammar but in the semantic highlighter. The code responsible for the semantic highlight is hosted in https://github.com/fsharp/FsAutoComplete and can sometimes need a fix in https://github.com/dotnet/fsharp.

image

@baronfel Am I right to say the problem is in the semantic highlighter ?

baronfel commented 1 year ago

yeah, that's right - anything in the semantic token type is FSAC, textmate tokens are this repo.

FSAC is pretty much a straight pass-through of the semantic highlighting from the FSharp.Compiler.Service library - so it's likely that any real fix would end up in dotnet/fsharp eventually.