`InitializationOptions.settings` is incorrectly documented as an array
liblit-at-amazon opened this issue · comments
The Initialize Request section of the "Running the JAVA LS server from the command line" wiki page describes the InitializationOptions.settings
property as an array of JavaConfigurationSettings
:
interface InitializationOptions {
...
/**
* Java LS configuration settings
*/
settings?: JavaConfigurationSettings[];
}
However, an example given later in that section shows settings
as a single JavaConfigurationSettings
instance, not an array of multiple JavaConfigurationSettings
instances:
InitializeParams: {
...
"initializationOptions": {
...
"settings": {
"java": {
...
}
}
},
...
}
In practice, I find that when I pass settings
as an array of one JavaConfigurationSettings
instance, its value is ignored. Conversely, if I pass settings
directly as a single JavaConfigurationSettings
instance, its value is used.
This line of code from the server's implementation also suggests that settings
is expected to be a dictionary, not an array:
Therefore, I believe that the documentation's declaration of interface InitializationOptions
is incorrect. The value of the InitializationOptions.settings
property should be a single JavaConfigurationSettings
instance, not an array of JavaConfigurationSettings
instances, as in:
interface InitializationOptions {
...
/**
* Java LS configuration settings
*/
settings?: JavaConfigurationSettings;
}