Hello everyone.
First of all, thank you for the work so far. The client helped very much with implementing an editor.
Background
I currently work on a language-server for the DSL openVALIDATION.
During the implementation, I considered most of the functions of the LSP, including the "GoTo-Definition" function.
My Problem
During to the fact, that openVALIDATION is close to a natural language, we don't have any brackets or use the indentation for separating different elements of the grammar. That's why I need to consider the exact range of the definition of a variable.
This is also part of the LSP, but not of the monaco-languageclient.
The monaco-languageclient can only use the class Location, which holds the range and the name of the requested reference. The LSP provides the class LocationLink which additionally holds the range of the definition of the variable.
Therefore I wanted to use this class for implementing the feature. This actually leads to an uncaught error inside the monaco-languageclient. The vscode-language-client can work fine with the same implementation.
Additional Context
In the following, I use a sample openVALDATION-Code which consists of a rule and a variable.
The variable is named underage and is located in the first two lines. Inside the second block, you can find the rule, which uses the variable in the first condition. I won't explain the rest of it, because this is are the relevant points of the following code:

As I said, openVALIDATION doesn't use any brackets or indentations to separate elements.
The elements of openVALIDATION are separated with blank lines.
If I am correct, the monaco-client uses the Location class and tries to find the whole definition with the defined brackets.
I now try to look at the definition of the variable underage with the corresponding reference inside the rule. The "brackets-problem" yields to the following documentation:

As you cant see, just the whole code will be displayed, because monaco doesn't recognize the end of the variable.
That's why I started using the class LocationLink and integrated this solution inside VSCode.
This leads to the following result:

The exact same code yields to the following error inside the monaco-languageclient, because the LocationLink class is unkown to the client.

I tried to implement the support for LocationLink by myself to create a pull request, but frankly, I wasn't very successful. Sorry for the long post but I wanted to provide all relevant information.
Thank you very much for helping me.
Hello everyone.
First of all, thank you for the work so far. The client helped very much with implementing an editor.
Background
I currently work on a language-server for the DSL openVALIDATION.
During the implementation, I considered most of the functions of the LSP, including the "GoTo-Definition" function.
My Problem
During to the fact, that openVALIDATION is close to a natural language, we don't have any brackets or use the indentation for separating different elements of the grammar. That's why I need to consider the exact range of the definition of a variable.
This is also part of the LSP, but not of the monaco-languageclient.
The monaco-languageclient can only use the class
Location, which holds the range and the name of the requested reference. The LSP provides the classLocationLinkwhich additionally holds the range of the definition of the variable.Therefore I wanted to use this class for implementing the feature. This actually leads to an uncaught error inside the monaco-languageclient. The vscode-language-client can work fine with the same implementation.
Additional Context
In the following, I use a sample openVALDATION-Code which consists of a rule and a variable.
The variable is named
underageand is located in the first two lines. Inside the second block, you can find the rule, which uses the variable in the first condition. I won't explain the rest of it, because this is are the relevant points of the following code:As I said, openVALIDATION doesn't use any brackets or indentations to separate elements.
The elements of openVALIDATION are separated with blank lines.
If I am correct, the monaco-client uses the
Locationclass and tries to find the whole definition with the defined brackets.I now try to look at the definition of the variable
underagewith the corresponding reference inside the rule. The "brackets-problem" yields to the following documentation:As you cant see, just the whole code will be displayed, because monaco doesn't recognize the end of the variable.
That's why I started using the class
LocationLinkand integrated this solution inside VSCode.This leads to the following result:
The exact same code yields to the following error inside the monaco-languageclient, because the
LocationLinkclass is unkown to the client.I tried to implement the support for
LocationLinkby myself to create a pull request, but frankly, I wasn't very successful. Sorry for the long post but I wanted to provide all relevant information.Thank you very much for helping me.