Auto merge of #13886 - Veykril:inlay-ligatures, r=Veykril
Use ZWNJ to prevent VSCode from forming ligatures between hints and code Turns out VSCode still has this issue for native hints as well, cc https://github.com/rust-lang/rust-analyzer/pull/6236
This commit is contained in:
commit
0b14cd9671
|
@ -100,6 +100,24 @@ export async function createClient(
|
|||
}
|
||||
},
|
||||
},
|
||||
async provideInlayHints(document, viewPort, token, next) {
|
||||
const inlays = await next(document, viewPort, token);
|
||||
if (!inlays) {
|
||||
return inlays;
|
||||
}
|
||||
// U+200C is a zero-width non-joiner to prevent the editor from forming a ligature
|
||||
// between code and hints
|
||||
for (const inlay of inlays) {
|
||||
if (typeof inlay.label === "string") {
|
||||
inlay.label = `\u{200c}${inlay.label}\u{200c}`;
|
||||
} else if (Array.isArray(inlay.label)) {
|
||||
for (const it of inlay.label) {
|
||||
it.value = `\u{200c}${it.value}\u{200c}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
return inlays;
|
||||
},
|
||||
async handleDiagnostics(
|
||||
uri: vscode.Uri,
|
||||
diagnostics: vscode.Diagnostic[],
|
||||
|
|
Loading…
Reference in a new issue