clientOptions,
);
- // HACK: This is an awful way of filtering out the decorations notifications
- // However, pending proper support, this is the most effecitve approach
- // Proper support for this would entail a change to vscode-languageclient to allow not notifying on certain messages
- // Or the ability to disable the serverside component of highlighting (but this means that to do tracing we need to disable hihlighting)
- // This also requires considering our settings strategy, which is work which needs doing
- // @ts-ignore The tracer is private to vscode-languageclient, but we need access to it to not log publishDecorations requests
- res._tracer = {
- log: (messageOrDataObject: string | unknown, data?: string) => {
- if (typeof messageOrDataObject === 'string') {
- if (
- messageOrDataObject.includes(
- 'rust-analyzer/publishDecorations',
- ) ||
- messageOrDataObject.includes(
- 'rust-analyzer/decorationsRequest',
- )
- ) {
- // Don't log publish decorations requests
- } else {
- // @ts-ignore This is just a utility function
- res.logTrace(messageOrDataObject, data);
- }
- } else {
- // @ts-ignore
- res.logObjectTrace(messageOrDataObject);
- }
- },
- };
-
// To turn on all proposed features use: res.registerProposedFeatures();
// Here we want to enable CallHierarchyFeature and SemanticTokensFeature
// since they are available on stable.