// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+
+ // NOTE: --disable-extensions
+ // Disable all installed extensions to increase performance of the debug instance
+ // and prevent potential conflicts with other installed extensions.
+
"version": "0.2.0",
"configurations": [
{
- "name": "Debug Extension",
+ // Used for testing the extension with the installed LSP server.
+ "name": "Run Installed Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
- "--extensionDevelopmentPath=${workspaceFolder}/editors/code",
- "--disable-extensions"
+ // "--user-data-dir=${workspaceFolder}/target/code",
+ "--disable-extensions",
+ "--extensionDevelopmentPath=${workspaceFolder}/editors/code"
],
- "env": {
- "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/debug/ra_lsp_server"
- },
- "outFiles": ["${workspaceFolder}/editors/code/bundle/**/*.js"],
- "preLaunchTask": "Build All"
- },
- {
- "name": "Debug Lsp Server",
- "type": "lldb",
- "request": "attach",
- "program": "${workspaceFolder}/target/debug/ra_lsp_server",
- "pid": "${command:pickMyProcess}",
- "sourceLanguages": ["rust"]
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'gen_lsp_server'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=gen_lsp_server"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'ra_analysis'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_analysis"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug test 'tests'",
- "cargo": {
- "args": ["build", "--test=tests", "--package=ra_analysis"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in test 'tests'",
- "cargo": {
- "args": ["test", "--no-run", "--test=tests", "--package=ra_analysis"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'ra_hir'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_hir"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'ra_db'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_db"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'ra_editor'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_editor"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'ra_syntax'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_syntax"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug test 'test'",
- "cargo": {
- "args": ["build", "--test=test", "--package=ra_syntax"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in test 'test'",
- "cargo": {
- "args": ["test", "--no-run", "--test=test", "--package=ra_syntax"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'test_utils'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=test_utils"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug executable 'ra_cli'",
- "cargo": {
- "args": ["build", "--bin=ra_cli", "--package=ra_cli"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in executable 'ra_cli'",
- "cargo": {
- "args": ["test", "--no-run", "--bin=ra_cli", "--package=ra_cli"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in library 'tools'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=tools"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug executable 'tools'",
- "cargo": {
- "args": ["build", "--bin=tools", "--package=tools"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in executable 'tools'",
- "cargo": {
- "args": ["test", "--no-run", "--bin=tools", "--package=tools"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
- },
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug test 'cli'",
- "cargo": {
- "args": ["build", "--test=cli", "--package=tools"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "outFiles": [
+ "${workspaceFolder}/editors/code/out/**/*.js"
+ ],
+ "preLaunchTask": "Build Extension",
+ "skipFiles": [
+ "<node_internals>/**/*.js"
+ ]
},
{
- "type": "lldb",
+ // Used for testing the extension with a local build of the LSP server (in `target/debug`).
+ "name": "Run Extension (Debug Build)",
+ "type": "extensionHost",
"request": "launch",
- "name": "Debug unit tests in test 'cli'",
- "cargo": {
- "args": ["test", "--no-run", "--test=cli", "--package=tools"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ "--disable-extensions",
+ "--extensionDevelopmentPath=${workspaceFolder}/editors/code"
+ ],
+ "outFiles": [
+ "${workspaceFolder}/editors/code/out/**/*.js"
+ ],
+ "preLaunchTask": "Build Server and Extension",
+ "skipFiles": [
+ "<node_internals>/**/*.js"
+ ],
+ "env": {
+ "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/debug/rust-analyzer"
+ }
},
{
- "type": "lldb",
+ // Used for testing the extension with a local build of the LSP server (in `target/release`).
+ "name": "Run Extension (Release Build)",
+ "type": "extensionHost",
"request": "launch",
- "name": "Debug unit tests in library 'ra_lsp_server'",
- "cargo": {
- "args": ["test", "--no-run", "--lib", "--package=ra_lsp_server"],
- "filter": {
- "kind": "lib"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ "--disable-extensions",
+ "--extensionDevelopmentPath=${workspaceFolder}/editors/code"
+ ],
+ "outFiles": [
+ "${workspaceFolder}/editors/code/out/**/*.js"
+ ],
+ "preLaunchTask": "Build Server (Release) and Extension",
+ "skipFiles": [
+ "<node_internals>/**/*.js"
+ ],
+ "env": {
+ "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/release/rust-analyzer"
+ }
},
{
- "type": "lldb",
+ // Used for testing the extension with a local build of the LSP server (in `target/release`)
+ // with all other extendions loaded.
+ "name": "Run With Extensions",
+ "type": "extensionHost",
"request": "launch",
- "name": "Debug executable 'ra_lsp_server'",
- "cargo": {
- "args": ["build", "--bin=ra_lsp_server", "--package=ra_lsp_server"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ "--disable-extension", "matklad.rust-analyzer",
+ "--extensionDevelopmentPath=${workspaceFolder}/editors/code"
+ ],
+ "outFiles": [
+ "${workspaceFolder}/editors/code/out/**/*.js"
+ ],
+ "preLaunchTask": "Build Server (Release) and Extension",
+ "skipFiles": [
+ "<node_internals>/**/*.js"
+ ],
+ "env": {
+ "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/release/rust-analyzer"
+ }
},
{
+ // Used to attach LLDB to a running LSP server.
+ // NOTE: Might require root permissions. For this run:
+ //
+ // `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope`
+ //
+ // Don't forget to set `debug = 2` in `Cargo.toml` before building the server
+
+ "name": "Attach To Server",
"type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in executable 'ra_lsp_server'",
- "cargo": {
- "args": [
- "test",
- "--no-run",
- "--bin=ra_lsp_server",
- "--package=ra_lsp_server"
- ],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "request": "attach",
+ "program": "${workspaceFolder}/target/debug/rust-analyzer",
+ "pid": "${command:pickMyProcess}",
+ "sourceLanguages": [
+ "rust"
+ ]
},
{
- "type": "lldb",
+ "name": "Run Unit Tests",
+ "type": "extensionHost",
"request": "launch",
- "name": "Debug test 'heavy_tests'",
- "cargo": {
- "args": ["build", "--test=heavy_tests", "--package=ra_lsp_server"],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ "--extensionDevelopmentPath=${workspaceFolder}/editors/code",
+ "--extensionTestsPath=${workspaceFolder}/editors/code/out/tests/unit" ],
+ "sourceMaps": true,
+ "outFiles": [ "${workspaceFolder}/editors/code/out/tests/unit/**/*.js" ],
+ "preLaunchTask": "Pretest"
},
{
- "type": "lldb",
- "request": "launch",
- "name": "Debug unit tests in test 'heavy_tests'",
- "cargo": {
- "args": [
- "test",
- "--no-run",
- "--test=heavy_tests",
- "--package=ra_lsp_server"
- ],
- "filter": {
- "kind": "bin"
- }
- },
- "args": [],
- "cwd": "${workspaceFolder}"
+ "name": "Win Attach to Server",
+ "type": "cppvsdbg",
+ "processId":"${command:pickProcess}",
+ "request": "attach"
}
]
}