{"_id":"@clangd/vscode-clangd","name":"@clangd/vscode-clangd","dist-tags":{"latest":"0.0.0"},"versions":{"0.0.0":{"name":"@clangd/vscode-clangd","version":"0.0.0","description":"API for the llvm-vs-code-extensions.vscode-clangd VS Code extension","types":"vscode-clangd.d.ts","repository":{"type":"git","url":"git+https://github.com/clangd/vscode-clangd.git"},"license":"MIT","homepage":"https://github.com/clangd/vscode-clangd/blob/master/api/README.md","dependencies":{"vscode-languageclient":"8.0.2"},"gitHead":"8cf158c47904b163d91cb1b9afb23843fa054716","bugs":{"url":"https://github.com/clangd/vscode-clangd/issues"},"_id":"@clangd/vscode-clangd@0.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-LqLCmGHxr+xJ9D2Df6NZ7KWTuNSltBu048yyV5qxcRFTMI0B1QPAIymDv4P8ajhR/fCgdXWsXXwrDxiZIhP6Zw==","shasum":"0b28f0bdd93e23f53f84f1d0504a754bff53b429","tarball":"https://registry.npmjs.org/@clangd/vscode-clangd/-/vscode-clangd-0.0.0.tgz","fileCount":3,"unpackedSize":3030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnuVni2GxceH7U8A+lnH7RWXNdUJfLOG6h1uTxleGGhAIhALDGzLxDRZUIuwDp2faFA/02Ar7NV1hFDR+EsTCqz35g"}]},"_npmUser":{"name":"nridge","email":"zeratul976@hotmail.com"},"directories":{},"maintainers":[{"name":"sam-mccall","email":"sam.mccall@gmail.com"},{"name":"kadircet","email":"kadircetinkaya.06.tr@gmail.com"},{"name":"nridge","email":"zeratul976@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vscode-clangd_0.0.0_1733505905916_0.6473495203408275"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-06T17:25:05.810Z","0.0.0":"2024-12-06T17:25:06.085Z","modified":"2024-12-06T17:25:06.486Z"},"maintainers":[{"name":"sam-mccall","email":"sam.mccall@gmail.com"},{"name":"kadircet","email":"kadircetinkaya.06.tr@gmail.com"},{"name":"nridge","email":"zeratul976@hotmail.com"}],"description":"API for the llvm-vs-code-extensions.vscode-clangd VS Code extension","homepage":"https://github.com/clangd/vscode-clangd/blob/master/api/README.md","repository":{"type":"git","url":"git+https://github.com/clangd/vscode-clangd.git"},"bugs":{"url":"https://github.com/clangd/vscode-clangd/issues"},"license":"MIT","readme":"# VS Code clangd Extension API\n\nThe VS Code clangd extension exposes an API that other extensions can consume:\n\n```typescript\nimport * as vscode from 'vscode';\nimport type { ClangdExtension, ASTParams, ASTNode } from '@clangd/vscode-clangd';\n\nconst CLANGD_EXTENSION = 'llvm-vs-code-extensions.vscode-clangd';\nconst CLANGD_API_VERSION = 1;\n\nconst ASTRequestMethod = 'textDocument/ast';\n\nconst provideHover = async (document: vscode.TextDocument, position: vscode.Position, _token: vscode.CancellationToken): Promise<vscode.Hover | undefined> => {\n\n    const clangdExtension = vscode.extensions.getExtension<ClangdExtension>(CLANGD_EXTENSION);\n\n    if (clangdExtension) {\n        const api = (await clangdExtension.activate()).getApi(CLANGD_API_VERSION);\n\n        // Extension may be disabled or have failed to initialize\n        if (!api.languageClient) {\n          return undefined;\n        }\n \n        const textDocument = api.languageClient.code2ProtocolConverter.asTextDocumentIdentifier(document);\n        const range = api.languageClient.code2ProtocolConverter.asRange(new vscode.Range(position, position));\n        const params: ASTParams = { textDocument, range };\n \n        const ast: ASTNode | undefined = await api.languageClient.sendRequest(ASTRequestMethod, params);\n\n        if (!ast) {\n            return undefined;\n        }\n\n        return {\n            contents: [ast.kind]\n        };\n    }\n};\n\nvscode.languages.registerHoverProvider(['c', 'cpp'], { provideHover });\n```\n","readmeFilename":"README.md"}