Commit graph

1199 commits

Author SHA1 Message Date
Andrei Listochkin
cb523fc88a
pass cargo extra args when debug
fixes #17128
2024-06-25 18:13:08 +01:00
Wilfred Hughes
e62bc2d1f5 fix: Improve hover text in unlinked file diagnostics
Use full sentences, and mention how to disable the diagnostic
if users are intentionally working on unowned files.
2024-06-20 09:32:48 -07:00
panicbit
792155e790 remove panicbit.cargo extension warning 2024-06-19 15:37:09 +02:00
bors
87ee18da54 Auto merge of #17438 - jjoeldaniel:toggle_lsp_logs, r=Veykril
feat: add `toggleLSPLogs` command

Implement client-side command to toggle LSP logs in VSCode.

The command replaces the need to add/remove the `"rust-analyzer.trace.server": "verbose"` setting each time one wants to display logs. I've also updated the docs/ instances that reference the now outdated manual method.

The command labeled `rust-analyzer: Toggle LSP Logs` enables the setting project-wide and opens the relevant trace output channel.

Closes #8233
2024-06-19 08:39:42 +00:00
Lukas Wirth
ff07caa9de Tidy up vscode extension a bit 2024-06-19 09:42:06 +02:00
Lukas Wirth
8846b5cf4a Fix and cleanup VSCode task building 2024-06-17 14:06:01 +02:00
Joel Daniel Rico
2ebcf55ece feat: add toggleLSPLogs command
add `toggleLSPLogs` command
update docs to reflect new command
2024-06-17 04:08:32 -07:00
David Barsky
b50fc06e0d fix: avoid doubling cargo args in runnables 2024-06-13 11:08:58 -04:00
Wilfred Hughes
71a78a9cdc feature: add build system info; runnables to rust-project.json 2024-06-11 11:55:17 -04:00
Lukas Wirth
0ee8a4f472 Add version info to status bar item 2024-06-07 14:39:50 +02:00
roife
4a4b13cbda fix: incorrect formatting of hover actions 2024-06-06 21:07:59 +08:00
Jonas Rinke
2616b7e045 Removed return 2024-05-25 22:42:39 +02:00
Jonas Rinke
84ab0d83d5 Formatting 2024-05-25 17:08:17 +02:00
Jonas Rinke
cb28175d22 Semicolon 2024-05-25 17:04:48 +02:00
Jonas Rinke
aaa7e3a3c4 Use correct format for setting environment variables when debugging with cpptools 2024-05-25 16:53:01 +02:00
roife
f4d3547bc6 Use cwd from runnable.args for debugger 2024-05-24 03:51:05 +08:00
roife
89843ba083 Revert "Debug use cargo workspace root as cwd. fixes #13022"
This reverts commit 4ca86edac9.
2024-05-24 03:51:05 +08:00
Lukas Wirth
bd37e2790b Allow sysroots to only consist of the source root dir 2024-05-23 20:12:31 +02:00
Lukas Wirth
18ca22a98e Show workspace info in the status bar 2024-04-26 11:28:33 +02:00
Lukas Wirth
ff9ebc747d Temporarily disable unlinked file popup 2024-04-13 22:45:22 +02:00
Wilfred Hughes
a758e349bc Document CargoTaskDefinition and factor out converting TaskDefinition to Execution 2024-03-29 16:07:22 -07:00
Wilfred Hughes
e8d6a5ec0b Rename RustTargetDefinition to CargoTaskDefinition 2024-03-29 16:07:22 -07:00
bors
f5a9250147 Auto merge of #16975 - HKalbasi:test-explorer, r=HKalbasi
Prompt the user to reload the window when enabling test explorer
2024-03-29 17:01:51 +00:00
hkalbasi
34cde2cebc Prompt the user to reload the window when enabling test explorer 2024-03-29 18:08:16 +03:30
bors
a8b7acf22f Auto merge of #16971 - HKalbasi:test-explorer, r=HKalbasi
Resolve tests per file instead of per crate in test explorer

Fix part of #16827
2024-03-29 02:06:22 +00:00
hkalbasi
beec6914c8 Resolve tests per file instead of per crate in test explorer 2024-03-29 05:34:43 +03:30
roife
3521089985 fix: use lldb when debugging with C++ extension 2024-03-28 14:38:23 +08:00
Laurențiu Nicola
662ea73e4e Revert debug extension priorities 2024-03-28 07:58:36 +02:00
hkalbasi
92300e8f86 Use --workspace and --no-fail-fast in test explorer 2024-03-19 01:46:41 +03:30
bors
f6e2895ee6 Auto merge of #16839 - Wilfred:extension_refactor_for_shell, r=Veykril
Refactor extension to support arbitrary shell command runnables

Currently, the extension assumes that all runnables invoke cargo. Arguments are sometimes full CLI arguments, and sometimes arguments passed to a cargo subcommand.

Refactor the extension so that tasks are just a `program` and a list of strings `args`, and rename `CargoTask` to `RustTask` to make it generic.

(This was factored out of #16135 and tidied.)
2024-03-18 08:48:57 +00:00
hkalbasi
eeff20d172 Show compilation progress in test explorer 2024-03-15 16:28:59 +03:30
Wilfred Hughes
4422a90b11 refactor: Store the CLI command directly in RustTargetDefinition 2024-03-14 16:41:49 -07:00
Wilfred Hughes
2e109c7da8 refactor: Use a single CLI args array rather than a separate subcommand field 2024-03-14 16:41:49 -07:00
Wilfred Hughes
d472fd932b refactor: Rename CargoTask to RustTask in extension 2024-03-14 16:41:49 -07:00
hkalbasi
dc99ad912a Some minor changes in the test explorer lsp extension 2024-03-09 01:21:27 +03:30
Lukas Wirth
1c6d1b4f2a fix: Add config and capability for test explorer 2024-03-06 19:20:58 +01:00
hkalbasi
44be2432f5 Add test explorer 2024-03-06 00:05:29 +03:30
Laurențiu Nicola
a01e4f8b72 Add basic support for Native Debug 2024-02-29 16:14:58 +02:00
DropDemBits
bcf14e27ce
Work around snippet edits doubling up extra indentation
We can't tell vscode to not add in the extra indentation, so we instead opt to remove it from the edits themselves, and then let vscode add it back in.
2024-02-15 18:39:17 -05:00
DropDemBits
d846586bc9
fix: Support multiple tab stops in completions in VSCode
Uses the native VSCode support for `SnippetTextEdit`s, but in a semi-hacky way as it's not fully supported yet.
2024-02-15 18:13:04 -05:00
bors
113f054274 Auto merge of #16558 - Wilfred:json_project_ts, r=lnicola
Update JsonProject to include optional fields

These were documented in #15014 in the manual, but this definition wasn't updated to match.
2024-02-14 06:24:56 +00:00
Wilfred Hughes
931f563a89 Update JsonProject to include optional fields
These were documented in #15014 in the manual, but this definition
wasn't updated to match.
2024-02-13 14:29:20 -08:00
David Barsky
6330b028b3 feature: Add a UnindexedProject notification and a corresponding setting. 2024-02-08 14:23:00 -05:00
Young-Flash
bec1e0f616 minor: polish warning msg 2024-02-04 18:37:09 +08:00
Young-Flash
4facb6253e minor: update warning msg 2024-01-30 20:33:15 +08:00
Young-Flash
96ebad0409 minor: update conflict extension detect logic 2024-01-26 20:12:13 +08:00
Young-Flash
56f54c87e7 fix lint and fmt 2024-01-22 19:33:26 +08:00
Young-Flash
e15f40e842 feat: add conflict ext (panicbit.cargo) detect 2024-01-22 18:49:39 +08:00
Lukas Wirth
3fc043ce9b internal: Remove unnecessary Arc allocations in macro_expand 2024-01-03 15:21:18 +01:00
cui fliter
638df27f99 Fix some comments
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-12-29 11:50:24 +08:00
Sanjaiyan Parthipan
f587b54340
perf: Run async task in concurrent 2023-12-19 13:16:55 +05:30
bors
c27fc0c945 Auto merge of #15896 - minestarks:run-quickpick, r=Veykril
Show placeholder while run command gets runnables from server

This PR fixes a UI annoyance in the VS Code extension when working in large codebases where rust-analyzer can take a few moments to interact with the server. Scenario:

1. Invoke "rust-analyzer: Run" from the command palette or hotkey
2. Quickly start typing to filter the list (or press Enter to accept the last runnable)

We often do this quickly from muscle memory without waiting to see the picker. The picker often takes several seconds to come up, causing us to type garbage into the currently open editor.

Fix:

Show a placeholder item before we call out to the server.

![image](https://github.com/rust-lang/rust-analyzer/assets/16928427/09de6a1c-6f3c-4d29-8031-ba4baeb43282)

Selecting this item does nothing so if the user accidentally hits Enter nothing happens.

The list is populated and the placeholder dismissed when the actual runnables are retrieved. From here the behavior is the same as before.

![image](https://github.com/rust-lang/rust-analyzer/assets/16928427/837c7dfc-c060-4d68-bbf6-df8aa3101b78)
2023-12-08 10:00:37 +00:00
Laurențiu Nicola
9dc38214c0 Fix runnable cwd on Windows 2023-12-05 13:09:01 +02:00
meowtec
4ca86edac9 Debug use cargo workspace root as cwd. fixes #13022 2023-11-30 19:21:59 +08:00
bors
fec3828c5f Auto merge of #15846 - jprochazk:disable-error-notification, r=Veykril
editor/code: add option to suppress error notifications

Fixes https://github.com/rust-lang/rust-analyzer/issues/14193

- Added the `rust-analyzer.showRequestFailedErrorNotification` configuration option, which defaults to `true`
- If `rust-analyzer.showRequestFailedErrorNotification` is set to `true`, the current behavior is preserved.
- If `rust-analyzer.showRequestFailedErrorNotification` is set to `false`, no error toasts will be displayed for any of the failed requests caused by panics in r-a. This _only_ applies to events that are triggered "implicitly", such as `textDocument/hover`.

To test this, you can manually introduce a panic in one of the language server LSP handlers for non-command events. I added an explicit `panic!()` in the `textDocument/hover` event handler:

#### `rust-analyzer.showRequestFailedErrorNotification` set to `true` (default)

[2023-11-07 17-17-48.webm](https://github.com/rust-lang/rust-analyzer/assets/1665677/d0408ab8-79d1-42cf-a4e7-94e99d9783ec)

#### `rust-analyzer.showRequestFailedErrorNotification` set to `false`

[2023-11-07 17-16-49.webm](https://github.com/rust-lang/rust-analyzer/assets/1665677/0496d8d0-fb53-4bc6-a279-1a47f412dbdb)
2023-11-24 14:06:07 +00:00
David Barsky
0cd68bfed3 code: expose workspaces to other extensions; remove addProject command 2023-11-16 12:38:15 -05:00
jprochazk
0d147b382f detect internal error via error.code instead of error message 2023-11-15 12:36:08 +01:00
Mine Starks
ec3f35bf63 Show placeholder while run command gets runnables from server 2023-11-14 14:39:17 -08:00
jprochazk
c566136854 add configuration option 2023-11-07 16:33:45 +01:00
jprochazk
3e4de963a2 override language client 2023-10-28 16:34:00 +02:00
Lukas Wirth
4296fe52ba Add command for only opening external docs and attempt to fix vscode-remote issue 2023-10-18 14:06:07 +02:00
Elias Holzmann
e8372e0484 vscode: Support opening local documentation if available
Displaying local instead of web docs can have many benefits:
- the web version may have different features enabled than locally selected
- the standard library may be a different version than is available online
- the user may not be online and therefore cannot access the web documentation
- the documentation may not be available online at all, for example because it
  is for a new feature in a library the user is currently developing

If the documentation is not available locally, the extension still falls back to
the web version.
2023-10-09 20:11:53 +02:00
Elias Holzmann
3dfc1bfc67 Use vscode.env.openExternal instead of the vscode.open command for docs
According to the VS Code documentation, the vscode.open command opens the URL
_in the editor_ (https://code.visualstudio.com/api/references/commands).
However, in reality, it seems to do so only for file:// URLs, falling back to
other applications for other URL schemes (at least for HTTP/HTTPS).

Until now, the URL to the documentation was always HTTP based, so using the
vscode.open command was perfectly fine. However, displaying local documentation
will be supported from now on (see next commit). Local documentation is not
HTTP-based, but instead addressed via a file:// URL. The file URL would
therefore be opened in VS Code instead of in the browser — this is definitely
not what the user wants.

Therefore, the vscode.env.openExternal function is used instead, this function
never opens the URL in VS Code.
2023-10-08 04:56:48 +02:00
dfireBird
ab091b73d0
Add config for the default click action of extension status bar 2023-10-04 21:07:50 +05:30
David Barsky
6260c635ee fmt 2023-09-05 15:45:52 -04:00
David Barsky
68781aeab0 fix some more lints 2023-09-05 12:38:33 -04:00
David Barsky
1ee7f54fa6 fix lints 2023-09-05 12:38:33 -04:00
David Barsky
b1b044f2d5 code: yeet rust-analyzer.discoverProjectCommand 2023-09-05 12:38:33 -04:00
bors
d548146c30 Auto merge of #15420 - Wilfred:discover_command_max_buffer, r=Veykril
Increase the buffer size for discover project command

The default value for maxBuffer is 1 MiB[1]. If the discover project command returns stdout or stderr that is greater than 1 MiB, the extension would error with "RangeError: stderr maxBuffer length exceeded".

Set the default value for maxBuffer to 10 MiB for project discovery.

[1] https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback
2023-08-15 12:13:12 +00:00
Lukas Wirth
e76d20e072 Add status bar button to toggle check on save state 2023-08-15 11:39:53 +02:00
Lukas Wirth
33f9250d21 Pass server extraEnv to isValidExecutable 2023-08-12 07:10:20 +02:00
Wilfred Hughes
0ef541e535 Increase the buffer size for discover project command
The default value for maxBuffer is 1 MiB[1]. If the discover project
command returns stdout or stderr that is greater than 1 MiB, the
extension would error with "RangeError: stderr maxBuffer length
exceeded".

Set the default value for maxBuffer to 10 MiB for project discovery.

[1] https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback
2023-08-10 12:28:50 -07:00
bors
eed86c0d98 Auto merge of #15392 - Wilfred:stopped_color, r=lnicola
Use the warning color when rust-analyzer is stopped

If the rust-analyzer server isn't running, we can't do much. Treat this state as a warning color, so it's more obvious.
2023-08-05 12:20:39 +00:00
Wilfred Hughes
253d68459d Use the warning color when rust-analyzer is stopped
If the rust-analyzer server isn't running, we can't do much. Treat
this state as a warning color, so it's more obvious.
2023-08-04 11:07:22 -07:00
Wilfred Hughes
1e76b11a20 Set the default status bar action to openLogs
Previously, clicking 'rust-analyzer' would stop the server
entirely. This was easy to do accidentally, and then the user has to
wait for the server to start up again.
2023-08-04 11:03:41 -07:00
Lukas Wirth
bd6ec06237 Write proc-macro server spawn errors to the status text 2023-07-30 14:38:25 +02:00
bors
bc1b0bfa7f Auto merge of #15308 - vsrs:runnable_env_per_platform, r=HKalbasi
Runnable env per platform

This PR adds an option to specify runnables `env` per platform (win32, linux, etc.):
```
{
    "rust-analyzer.runnables.extraEnv": [
            {
                "platform": "win32",
                "env": {
                    "SCITER_BIN_FOLDER": "C:\\Projects\\3rd\\sciter-js-sdk\\bin\\windows\\x64",
                }
            },
            {
                "platform":["linux","darwin"],
                "env": {
                    "SCITER_BIN_FOLDER": "/home/vit/Projects/sciter/sciter-js-sdk/bin/linux/x64",
                }
            }
        ]
}
```
2023-07-28 07:03:09 +00:00
igorskyflyer
5d67cbea43 Use notification command links for debugger installation 2023-07-20 15:41:08 +02:00
vsrs
08b3b2a56d Fix lint 2023-07-18 18:06:20 +07:00
vsrs
3468b093bd Platform specific runnables env 2023-07-18 17:51:57 +07:00
Tetsuharu Ohzeki
f7823f3106 editor/code: Re-apply code format 2023-07-13 22:44:29 +09:00
Tetsuharu Ohzeki
445b4fc27f editor/code: Sort the style to import types
see:
- https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/consistent-type-imports.md
- https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-import-type-side-effects.md
2023-07-11 06:12:00 +09:00
Tetsuharu Ohzeki
444bc5b3ba editor/code: Enable TypeScript's --useUnknownInCatchVariables option
see: https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables
2023-07-10 23:13:36 +09:00
Tetsuharu Ohzeki
a66b7e3eba editor/code: Remove unused sendRequestWithRetry 2023-07-10 23:13:36 +09:00
Tetsuharu Ohzeki
fd31006646 editor/code: Assert types in catch in sendRequestWithRetry() properly 2023-07-10 23:13:36 +09:00
Adenine
1dd54eb44a change viewMemoryLayoutParams to be textPositionParams 2023-07-08 12:25:54 -04:00
Adenine
4d5c66986e cleanup + docs + tests 2023-07-07 23:12:09 -04:00
Adenine
c43cfefdd8 fix typescript return path warning 2023-07-07 23:09:41 -04:00
Adenine
de5e3cf745 fix incorrect committed rust and run prettier 2023-07-07 23:09:41 -04:00
Adenine
cfa15d49aa implement first pass of memory layout viewer 2023-07-07 23:09:41 -04:00
bors
09f666b51b Auto merge of #15227 - DropDemBits:indent-on-blank-line, r=lnicola
fix: Indent after pressing enter on a blank line

Regressed after https://github.com/rust-lang/rust-analyzer/pull/13975 (whoops).
2023-07-07 09:06:56 +00:00
DropDemBits
ebaf8c8135
fix: Indent after pressing enter on a blank line 2023-07-06 23:25:02 -04:00
Tetsuharu Ohzeki
f70845305f editor/code: Enable noPropertyAccessFromIndexSignature ts option 2023-07-06 16:17:02 +09:00
Tetsuharu Ohzeki
72a3883a71 editor/code: Enable noUncheckedIndexedAccess ts option
https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess
2023-07-06 16:17:02 +09:00
Alex Kladov
832a64e290 feat: don't add panics to error jump list by default
To re-enable this, use

    "rust-analyzer.runnables.problemMatcher": [
        "$rustc",
        "$rust-panic"
    ],

setting.

closes: #14977
2023-06-30 22:23:13 +01:00
bors
d7f4c21950 Auto merge of #15138 - mohsen-alizadeh:13583-rename-runnableEnv-to-runnables-extraEnv, r=Veykril
13583 rename runnable env to runnables extra env

closes #13583
2023-06-29 07:18:57 +00:00
Mohsen Alizadeh
3f70117d69 fallback to old key 2023-06-28 21:24:28 -07:00
Tetsuharu Ohzeki
8e0efbc2a7 editor/code: Enable noImplicitOverride ts option 2023-06-28 17:40:27 +09:00
Mohsen Alizadeh
6c3e15aaa0 13583 rename runnable env to runnables extra env 2023-06-25 17:26:04 -07:00
David Barsky
7dfef85be6 fix: add a toggle to disable the dependency explorer. 2023-05-26 11:50:07 -04:00