Compare commits
2 commits
master
...
force-laun
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3f458cdc7 | ||
|
|
7723d58cf8 |
59 changed files with 1227 additions and 4907 deletions
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -57,12 +57,6 @@ discussing on Gitter rather than raising an issue.
|
|||
* Version of Vimspector: (e.g. output of `git rev-parse HEAD` if cloned or the
|
||||
name of the tarball used to install otherwise)
|
||||
|
||||
* Output of `:VimspectorDebugInfo`
|
||||
|
||||
```
|
||||
paste here
|
||||
```
|
||||
|
||||
* Output of `vim --version` or `nvim --version`
|
||||
|
||||
```
|
||||
|
|
|
|||
20
.github/workflows/build.yaml
vendored
20
.github/workflows/build.yaml
vendored
|
|
@ -13,7 +13,7 @@ defaults:
|
|||
|
||||
jobs:
|
||||
PythonLint:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-16.04
|
||||
container: 'puremourning/vimspector:test'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
- name: 'Run flake8'
|
||||
run: '$HOME/.local/bin/flake8 python3/ *.py'
|
||||
VimscriptLint:
|
||||
runs-on: 'ubuntu-18.04'
|
||||
runs-on: 'ubuntu-16.04'
|
||||
container: 'puremourning/vimspector:test'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
run: $HOME/.local/bin/vint autoload/ compiler/ plugin/ tests/ syntax/
|
||||
|
||||
Linux:
|
||||
runs-on: 'ubuntu-18.04'
|
||||
runs-on: 'ubuntu-16.04'
|
||||
container:
|
||||
image: 'puremourning/vimspector:test'
|
||||
options: --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
|
||||
|
|
@ -111,16 +111,6 @@ jobs:
|
|||
path: gadgets/macos/download
|
||||
name: Cache gadgets
|
||||
|
||||
- name: 'Install .NET Core SDK 3.1'
|
||||
uses: actions/setup-dotnet@v1.7.2
|
||||
with:
|
||||
dotnet-version: 3.1
|
||||
|
||||
- uses: maxim-lobanov/setup-xcode@v1
|
||||
with:
|
||||
xcode-version: ^11
|
||||
name: "Switch to xcode 11 because of .NET debugging bug"
|
||||
|
||||
- run: vim --version
|
||||
name: 'Print vim version information'
|
||||
|
||||
|
|
@ -153,10 +143,10 @@ jobs:
|
|||
# if: failure()
|
||||
# with:
|
||||
# NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}
|
||||
# SSH_PASS: ${{ secrets.SSH_PASS }} # [V]imspector
|
||||
# SSH_PASS: ${{ secrets.SSH_PASS }}
|
||||
|
||||
PublishRelease:
|
||||
runs-on: 'ubuntu-18.04'
|
||||
runs-on: 'ubuntu-16.04'
|
||||
needs:
|
||||
- Linux
|
||||
- MacOS
|
||||
|
|
|
|||
27
.github/workflows/lock_old_issues.yaml
vendored
27
.github/workflows/lock_old_issues.yaml
vendored
|
|
@ -1,27 +0,0 @@
|
|||
name: "Lock Old Issues"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v2
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-lock-inactive-days: '60'
|
||||
# issue-exclude-created-before: ''
|
||||
# issue-exclude-labels: ''
|
||||
# issue-lock-labels: ''
|
||||
# issue-lock-comment: ''
|
||||
# issue-lock-reason: 'resolved'
|
||||
# pr-lock-inactive-days: '365'
|
||||
# pr-exclude-created-before: ''
|
||||
# pr-exclude-labels: ''
|
||||
# pr-lock-labels: ''
|
||||
# pr-lock-comment: ''
|
||||
# pr-lock-reason: 'resolved'
|
||||
process-only: 'issues'
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -20,4 +20,3 @@ support/test/csharp/*.exe*
|
|||
configurations/
|
||||
venv/
|
||||
test-base/
|
||||
tags
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ pull_request_rules:
|
|||
# CI https://doc.mergify.io/conditions.html#github-actions
|
||||
- status-success=PythonLint
|
||||
- status-success=VimscriptLint
|
||||
- status-success=Linux
|
||||
- status-success=MacOS
|
||||
|
||||
|
||||
actions: &merge-actions
|
||||
merge:
|
||||
method: merge
|
||||
|
|
|
|||
|
|
@ -42,17 +42,7 @@ def Settings( **kwargs ):
|
|||
return {
|
||||
'sys_path': [
|
||||
p.join( PATH_TO_THIS_DIR, 'python3' )
|
||||
],
|
||||
'ls': {
|
||||
'python': {
|
||||
'analysis': {
|
||||
'extraPaths': [
|
||||
p.join( PATH_TO_THIS_DIR, 'python3' ),
|
||||
],
|
||||
'useLibraryCodeForTypes': True
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
if IgnoreExtraConf:
|
||||
|
|
|
|||
|
|
@ -46,23 +46,6 @@ The GitHub issue tracker is for *bug reports* and *features requests* for the
|
|||
Vimspector project, and on-topic comments and follow-ups to them. It is not for
|
||||
general discussion, general support or for any other purpose.
|
||||
|
||||
Please **search the issue tracker for similar issues** before creating a new
|
||||
one. There's no point in duplication; if an existing open issue addresses your
|
||||
problem, please comment there instead of creating a duplicate. However, if the
|
||||
issue you found is **closed as resolved** (e.g. with a PR or the original user's
|
||||
problem was resolved), raise a **new issue**, because you've found a new
|
||||
problem. Reference the original issue if you think that's useful information.
|
||||
|
||||
Closed issues which have been inactive for 60 days will be locked, this helps to
|
||||
keep discussions focussed. If you believe you are still experiencing an issue
|
||||
which has been closed, please raise a new issue, completing the issue template.
|
||||
|
||||
If you do find a similar _open_ issue, **don't just post 'me too' or similar**
|
||||
responses. This almost never helps resolve the issue, and just causes noise for
|
||||
the maintainers. Only post if it will aid the maintainers in solving the issue;
|
||||
if there are existing diagnostics requested in the thread, perform
|
||||
them and post the results.
|
||||
|
||||
Please do not be offended if your Issue or comment is closed or hidden, for any
|
||||
of the following reasons:
|
||||
|
||||
|
|
@ -70,7 +53,6 @@ of the following reasons:
|
|||
* The issue or comment is off-topic
|
||||
* The issue does not represent a Vimspector bug or feature request
|
||||
* The issue cannot be reasonably reproduced using the minimal vimrc
|
||||
* The issue is a duplicate of an existing issue
|
||||
* etc.
|
||||
|
||||
Issue titles are important. It's not usually helpful to write a title like
|
||||
|
|
|
|||
304
README.md
304
README.md
|
|
@ -3,7 +3,7 @@
|
|||
For a tutorial and usage overview, take a look at the
|
||||
[Vimspector website][website].
|
||||
|
||||
For detailed explanation of the `.vimspector.json` format, see the
|
||||
For detailed explanatin of the `.vimspector.json` format, see the
|
||||
[reference guide][vimspector-ref].
|
||||
|
||||
 [](https://gitter.im/vimspector/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
|
@ -59,16 +59,15 @@ For detailed explanation of the `.vimspector.json` format, see the
|
|||
* [Console autocompletion](#console-autocompletion)
|
||||
* [Log View](#log-view)
|
||||
* [Closing debugger](#closing-debugger)
|
||||
* [Terminate debuggee](#terminate-debuggee)
|
||||
* [Debug profile configuration](#debug-profile-configuration)
|
||||
* [C, C++, Rust, etc.](#c-c-rust-etc)
|
||||
* [Data visualization / pretty printing](#data-visualization--pretty-printing)
|
||||
* [C++ Remote debugging](#c-remote-debugging)
|
||||
* [C++ Remote launch and attach](#c-remote-launch-and-attach)
|
||||
* [C, C , Rust, etc.](#c-c-rust-etc)
|
||||
* [C Remote debugging](#c-remote-debugging)
|
||||
* [C Remote launch and attach](#c-remote-launch-and-attach)
|
||||
* [Rust](#rust)
|
||||
* [Python](#python)
|
||||
* [Python Remote Debugging](#python-remote-debugging)
|
||||
* [Python Remote launch and attach](#python-remote-launch-and-attach)
|
||||
* [Legacy: vscode-python](#legacy-vscode-python)
|
||||
* [TCL](#tcl)
|
||||
* [C♯](#c)
|
||||
* [Go](#go)
|
||||
|
|
@ -77,7 +76,6 @@ For detailed explanation of the `.vimspector.json` format, see the
|
|||
* [Debug cli application](#debug-cli-application)
|
||||
* [JavaScript, TypeScript, etc.](#javascript-typescript-etc)
|
||||
* [Java](#java)
|
||||
* [Hot code replace](#hot-code-replace)
|
||||
* [Usage with YouCompleteMe](#usage-with-youcompleteme)
|
||||
* [Other LSP clients](#other-lsp-clients)
|
||||
* [Lua](#lua)
|
||||
|
|
@ -93,14 +91,14 @@ For detailed explanation of the `.vimspector.json` format, see the
|
|||
* [Example](#example)
|
||||
* [FAQ](#faq)
|
||||
|
||||
<!-- Added by: ben, at: Fri 19 Mar 2021 22:57:28 GMT -->
|
||||
<!-- Added by: ben, at: Sun 21 Feb 2021 21:15:32 GMT -->
|
||||
|
||||
<!--te-->
|
||||
|
||||
# Features and Usage
|
||||
|
||||
The plugin is a capable Vim graphical debugger for multiple languages.
|
||||
It's mostly tested for C++, Python and TCL, but in theory supports any
|
||||
It's mostly tested for c++, python and TCL, but in theory supports any
|
||||
language that Visual Studio Code supports (but see caveats).
|
||||
|
||||
The [Vimspector website][website] has an overview of the UI, along with basic
|
||||
|
|
@ -145,24 +143,23 @@ runtime dependencies). They are categorised by their level of support:
|
|||
* `Supported` : Fully supported, frequently used and manually tested
|
||||
* `Experimental`: Working, but not frequently used and rarely tested
|
||||
* `Legacy`: No longer supported, please migrate your config
|
||||
* `Retired`: No longer included or supported.
|
||||
|
||||
| Language | Status | Switch (for `install_gadget.py`) | Adapter (for `:VimspectorInstall`) | Dependencies |
|
||||
|--------------------|-----------|----------------------------------|------------------------------------|--------------------------------------------|
|
||||
| C, C++, Rust etc. | Tested | `--all` or `--enable-c` (or cpp) | vscode-cpptools | mono-core |
|
||||
| Rust, C, C++, etc. | Supported | `--force-enable-rust` | CodeLLDB | Python 3 |
|
||||
| Python | Tested | `--all` or `--enable-python` | debugpy | Python 2.7 or Python 3 |
|
||||
| Go | Tested | `--enable-go` | vscode-go | Node, Go, [Delve][] |
|
||||
| TCL | Supported | `--all` or `--enable-tcl` | tclpro | TCL 8.5 |
|
||||
| Bourne Shell | Supported | `--all` or `--enable-bash` | vscode-bash-debug | Bash v?? |
|
||||
| Lua | Supported | `--all` or `--enable-lua` | local-lua-debugger-vscode | Node >=12.13.0, Npm, Lua interpreter |
|
||||
| Node.js | Supported | `--force-enable-node` | vscode-node-debug2 | 6 < Node < 12, Npm |
|
||||
| Javascript | Supported | `--force-enable-chrome` | debugger-for-chrome | Chrome |
|
||||
| Java | Supported | `--force-enable-java ` | vscode-java-debug | Compatible LSP plugin (see [later](#java)) |
|
||||
| C# (dotnet core) | Tested | `--force-enable-csharp` | netcoredbg | DotNet core |
|
||||
| F#, VB, etc. | Supported | `--force-enable-[fsharp,vbnet]` | `, `--force-enable-vbnet` | netcoredbg | DotNet core |
|
||||
| C# (mono) | _Retired_ | N/A | N/A | N/A |
|
||||
| Python.legacy | _Retired_ | N/A | N/A | N/A |
|
||||
| Language | Status | Switch (for `install_gadget.py`) | Adapter (for `:VimspectorInstall`) | Dependencies |
|
||||
|--------------------|--------------|------------------------------------|------------------------------------|--------------------------------------------|
|
||||
| C, C++, Rust etc. | Tested | `--all` or `--enable-c` (or cpp) | vscode-cpptools | mono-core |
|
||||
| Rust, C, C++, etc. | Supported | `--force-enable-rust` | CodeLLDB | Python 3 |
|
||||
| Python | Tested | `--all` or `--enable-python` | debugpy | Python 2.7 or Python 3 |
|
||||
| Go | Tested | `--enable-go` | vscode-go | Go, [Delve][] |
|
||||
| TCL | Supported | `--all` or `--enable-tcl` | tclpro | TCL 8.5 |
|
||||
| Bourne Shell | Supported | `--all` or `--enable-bash` | vscode-bash-debug | Bash v?? |
|
||||
| Lua | Supported | `--all` or `--enable-lua` | local-lua-debugger-vscode | Node >=12.13.0, Npm, Lua interpreter |
|
||||
| Node.js | Supported | `--force-enable-node` | vscode-node-debug2 | 6 < Node < 12, Npm |
|
||||
| Javascript | Supported | `--force-enable-chrome` | debugger-for-chrome | Chrome |
|
||||
| Java | Supported | `--force-enable-java ` | vscode-java-debug | Compatible LSP plugin (see [later](#java)) |
|
||||
| C# (dotnet core) | Experimental | `--force-enable-csharp` | netcoredbg | DotNet core |
|
||||
| C# (mono) | Experimental | `--force-enable-csharp` | vscode-mono-debug | Mono |
|
||||
| F#, VB, etc. | Experimental | `--force-enable-fsharp` (or vbnet) | netcoredbg | DotNet core |
|
||||
| Python.legacy | Legacy | `--force-enable-python.legacy` | vscode-python | Node 10, Python 2.7 or Python 3 |
|
||||
|
||||
## Other languages
|
||||
|
||||
|
|
@ -291,7 +288,7 @@ If you just want to try out vimspector without changing your vim config, there
|
|||
are example projects for a number of languages in `support/test`, including:
|
||||
|
||||
* Python (`support/test/python/simple_python`)
|
||||
* Go (`support/test/go/hello_world` and `support/test/go/name-starts-with-vowel`)
|
||||
* Go (`support/test/go/hello_world`)
|
||||
* Nodejs (`support/test/node/simple`)
|
||||
* Chrome (`support/test/chrome/`)
|
||||
* etc.
|
||||
|
|
@ -527,6 +524,13 @@ Example:
|
|||
"${gadgetDir}/vscode-cpptools/debugAdapters/OpenDebugAD7"
|
||||
],
|
||||
"name": "cppdbg"
|
||||
},
|
||||
"vscode-python": {
|
||||
"command": [
|
||||
"node",
|
||||
"${gadgetDir}/vscode-python/out/client/debugger/debugAdapter/main.js"
|
||||
],
|
||||
"name": "vscode-python"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -652,23 +656,18 @@ personal and so you should work out what you like and use vim's powerful mapping
|
|||
features to set your own mappings. To that end, Vimspector defines the following
|
||||
`<Plug>` mappings:
|
||||
|
||||
| Mapping | Function | API |
|
||||
| --- | --- | --- |
|
||||
| `<Plug>VimspectorContinue` | When debugging, continue. Otherwise start debugging. | `vimspector#Continue()` |
|
||||
| `<Plug>VimspectorStop` | Stop debugging. | `vimspector#Stop()` |
|
||||
| `<Plug>VimpectorRestart` | Restart debugging with the same configuration. | `vimspector#Restart()` |
|
||||
| `<Plug>VimspectorPause` | Pause debuggee. | `vimspector#Pause()` |
|
||||
| `<Plug>VimspectorToggleBreakpoint` | Toggle line breakpoint on the current line. | `vimspector#ToggleBreakpoint()` |
|
||||
| `<Plug>VimspectorToggleConditionalBreakpoint` | Toggle conditional line breakpoint on the current line. | `vimspector#ToggleBreakpoint( { trigger expr, hit count expr } )` |
|
||||
| `<Plug>VimspectorAddFunctionBreakpoint` | Add a function breakpoint for the expression under cursor | `vimspector#AddFunctionBreakpoint( '<cexpr>' )` |
|
||||
| `<Plug>VimspectorRunToCursor` | Run to Cursor | `vimspector#RunToCursor()` |
|
||||
| `<Plug>VimspectorStepOver` | Step Over | `vimspector#StepOver()` |
|
||||
| `<Plug>VimspectorStepInto` | Step Into | `vimspector#StepInto()` |
|
||||
| `<Plug>VimspectorStepOut` | Step out of current function scope | `vimspector#StepOut()` |
|
||||
| `<Plug>VimspectorUpFrame` | Move up a frame in the current call stack | `vimspector#UpFrame()` |
|
||||
| `<Plug>VimspectorDownFrame` | Move down a frame in the current call stack | `vimspector#DownFrame()` |
|
||||
| `<Plug>VimspectorBalloonEval` | Evaluate expression under cursor (or visual) in popup | *internal* |
|
||||
|
||||
* `<Plug>VimspectorContinue`
|
||||
* `<Plug>VimspectorStop`
|
||||
* `<Plug>VimspectorRestart`
|
||||
* `<Plug>VimspectorPause`
|
||||
* `<Plug>VimspectorToggleBreakpoint`
|
||||
* `<Plug>VimspectorToggleConditionalBreakpoint`
|
||||
* `<Plug>VimspectorAddFunctionBreakpoint`
|
||||
* `<Plug>VimspectorStepOver`
|
||||
* `<Plug>VimspectorStepInto`
|
||||
* `<Plug>VimspectorStepOut`
|
||||
* `<Plug>VimspectorRunToCursor`
|
||||
* `<Plug>VimspectorBalloonEval`
|
||||
|
||||
These map roughly 1-1 with the API functions below.
|
||||
|
||||
|
|
@ -696,17 +695,17 @@ loading vimspector**:
|
|||
let g:vimspector_enable_mappings = 'VISUAL_STUDIO'
|
||||
```
|
||||
|
||||
| Key | Mapping | Function
|
||||
| --- | --- | ---
|
||||
| `F5` | `<Plug>VimspectorContinue` | When debugging, continue. Otherwise start debugging.
|
||||
| `Shift F5` | `<Plug>VimspectorStop` | Stop debugging.
|
||||
| `Ctrl Shift F5` | `<Plug>VimspectorRestart` | Restart debugging with the same configuration.
|
||||
| `F6` | `<Plug>VimspectorPause` | Pause debuggee.
|
||||
| `F9` | `<Plug>VimspectorToggleBreakpoint` | Toggle line breakpoint on the current line.
|
||||
| `Shift F9` | `<Plug>VimspectorAddFunctionBreakpoint` | Add a function breakpoint for the expression under cursor
|
||||
| `F10` | `<Plug>VimspectorStepOver` | Step Over
|
||||
| `F11` | `<Plug>VimspectorStepInto` | Step Into
|
||||
| `Shift F11` | `<Plug>VimspectorStepOut` | Step out of current function scope
|
||||
| Key | Function | API |
|
||||
| --- | --- | --- |
|
||||
| `F5` | When debugging, continue. Otherwise start debugging. | `vimspector#Continue()` |
|
||||
| `Shift F5` | Stop debugging. | `vimspector#Stop()` |
|
||||
| `Ctrl Shift F5` | Restart debugging with the same configuration. | `vimspector#Restart()` |
|
||||
| `F6` | Pause debuggee. | `vimspector#Pause()` |
|
||||
| `F9` | Toggle line breakpoint on the current line. | `vimspector#ToggleBreakpoint()` |
|
||||
| `Shift F9` | Add a function breakpoint for the expression under cursor | `vimspector#AddFunctionBreakpoint( '<cexpr>' )` |
|
||||
| `F10` | Step Over | `vimspector#StepOver()` |
|
||||
| `F11` | Step Into | `vimspector#StepInto()` |
|
||||
| `Shift F11` | Step out of current function scope | `vimspector#StepOut()` |
|
||||
|
||||
## Human Mode
|
||||
|
||||
|
|
@ -721,19 +720,20 @@ loading vimspector**:
|
|||
let g:vimspector_enable_mappings = 'HUMAN'
|
||||
```
|
||||
|
||||
| Key | Mapping | Function
|
||||
| --- | --- | ---
|
||||
| `F5` | `<Plug>VimspectorContinue` | When debugging, continue. Otherwise start debugging.
|
||||
| `F3` | `<Plug>VimspectorStop` | Stop debugging.
|
||||
| `F4` | `<Plug>VimspectorRestart` | Restart debugging with the same configuration.
|
||||
| `F6` | `<Plug>VimspectorPause` | Pause debuggee.
|
||||
| `F9` | `<Plug>VimspectorToggleBreakpoint` | Toggle line breakpoint on the current line.
|
||||
| `<leader>F9` | `<Plug>VimspectorToggleConditionalBreakpoint` | Toggle conditional line breakpoint on the current line.
|
||||
| `F8` | `<Plug>VimspectorAddFunctionBreakpoint` | Add a function breakpoint for the expression under cursor
|
||||
| `<leader>F8` | `<Plug>VimspectorRunToCursor` | Run to Cursor
|
||||
| `F10` | `<Plug>VimspectorStepOver` | Step Over
|
||||
| `F11` | `<Plug>VimspectorStepInto` | Step Into
|
||||
| `F12` | `<Plug>VimspectorStepOut` | Step out of current function scope
|
||||
| Key | Function | API |
|
||||
| --- | --- | --- |
|
||||
| `F5` | When debugging, continue. Otherwise start debugging. | `vimspector#Continue()` |
|
||||
| `<Leader>F5` | Start debugging, do not default the debug profile | `vimspector#Launch( v:true )` |
|
||||
| `F3` | Stop debugging. | `vimspector#Stop()` |
|
||||
| `F4` | Restart debugging with the same configuration. | `vimspector#Restart()` |
|
||||
| `F6` | Pause debuggee. | `vimspector#Pause()` |
|
||||
| `F9` | Toggle line breakpoint on the current line. | `vimspector#ToggleBreakpoint()` |
|
||||
| `<leader>F9` | Toggle conditional line breakpoint on the current line. | `vimspector#ToggleBreakpoint( { trigger expr, hit count expr } )` |
|
||||
| `F8` | Add a function breakpoint for the expression under cursor | `vimspector#AddFunctionBreakpoint( '<cexpr>' )` |
|
||||
| `<leader>F8` | Run to Cursor | `vimspector#RunToCursor()` |
|
||||
| `F10` | Step Over | `vimspector#StepOver()` |
|
||||
| `F11` | Step Into | `vimspector#StepInto()` |
|
||||
| `F12` | Step out of current function scope | `vimspector#StepOut()` |
|
||||
|
||||
In addition, I recommend adding a mapping to `<Plug>VimspectorBalloonEval`, in
|
||||
normal and visual modes, for example:
|
||||
|
|
@ -747,12 +747,9 @@ nmap <Leader>di <Plug>VimspectorBalloonEval
|
|||
xmap <Leader>di <Plug>VimspectorBalloonEval
|
||||
```
|
||||
|
||||
You may also wish to add mappings for up/down the stack, for example:
|
||||
|
||||
```viml
|
||||
nmap <LocalLeader><F11> <Plug>VimspectorUpFrame
|
||||
nmap <LocalLeader><F12> <Plug>VimspectorDownFrame
|
||||
```
|
||||
If you would like to have custom mappings, or mappings active only while
|
||||
debugging, then take a look at the
|
||||
[customisation sectoin](#custom-mappings-while-debugging).
|
||||
|
||||
# Usage and API
|
||||
|
||||
|
|
@ -1008,8 +1005,6 @@ be changed manually to "switch to" that thread.
|
|||
to set the "focussed" thread to the currently selected one. If the selected
|
||||
line is a stack frame, set the focussed thread to the thread of that frame and
|
||||
jump to that frame in the code window.
|
||||
* The current frame when a breakpoint is hit or if manuall jumping is also
|
||||
highlighted.
|
||||
|
||||

|
||||
|
||||
|
|
@ -1071,8 +1066,6 @@ information when something goes wrong that's not a Vim traceback.
|
|||
If you just want to see the Vimspector log file, use `:VimspectorToggleLog`,
|
||||
which will tail it in a little window (doesn't work on Windows).
|
||||
|
||||
You can see some debugging info with `:VimspectorDebugInfo`
|
||||
|
||||
## Closing debugger
|
||||
|
||||
To close the debugger, use:
|
||||
|
|
@ -1177,38 +1170,6 @@ licensing.
|
|||
}
|
||||
```
|
||||
|
||||
### Data visualization / pretty printing
|
||||
|
||||
Depending on the backend you need to enable pretty printing of complex types manually.
|
||||
|
||||
* LLDB: Pretty printing is enabled by default
|
||||
|
||||
* GDB: To enable gdb pretty printers, consider the snippet below.
|
||||
It is not enough to have `set print pretty on` in your .gdbinit!
|
||||
|
||||
```
|
||||
{
|
||||
"configurations": {
|
||||
"Launch": {
|
||||
"adapter": "vscode-cpptools",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "<path to binary>",
|
||||
...
|
||||
"MIMode": "gdb"
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### C++ Remote debugging
|
||||
|
||||
The cpptools documentation describes how to attach cpptools to gdbserver using
|
||||
|
|
@ -1294,6 +1255,10 @@ Rust is supported with any gdb/lldb-based debugger. So it works fine with
|
|||
headers/libs to build a C python extension for performance.
|
||||
* Full options: https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings
|
||||
|
||||
|
||||
**Migrating from `vscode-python`**: change `"adapter": "vscode-python"` to
|
||||
`"adapter": "debugpy"`.
|
||||
|
||||
```json
|
||||
{
|
||||
"configurations": {
|
||||
|
|
@ -1360,6 +1325,34 @@ debugpy](https://github.com/microsoft/debugpy/wiki/Debugging-over-SSH).
|
|||
If you're feeling fancy, checkout the [reference guide][remote-debugging] for
|
||||
an example of getting Vimspector to remotely launch and attach.
|
||||
|
||||
### Legacy: vscode-python
|
||||
|
||||
* No longer installed by default - please pass `--force-enable-python.legacy` if
|
||||
you just want to continue using your working setup.
|
||||
* [vscode-python](https://github.com/Microsoft/vscode-python)
|
||||
* NOTE: You must be running `node` 10. See [this issue](https://github.com/puremourning/vimspector/issues/105)
|
||||
|
||||
```json
|
||||
{
|
||||
"configurations": {
|
||||
"<name>: Launch": {
|
||||
"adapter": "vscode-python",
|
||||
"configuration": {
|
||||
"name": "<name>: Launch",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"cwd": "<working directory>",
|
||||
"stopOnEntry": true,
|
||||
"console": "externalTerminal",
|
||||
"debugOptions": [],
|
||||
"program": "<path to main python file>"
|
||||
}
|
||||
}
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## TCL
|
||||
|
||||
* TCL (TclProDebug)
|
||||
|
|
@ -1383,8 +1376,35 @@ netcoredbg`
|
|||
"program": "${workspaceRoot}/bin/Debug/netcoreapp2.2/csharp.dll",
|
||||
"args": [],
|
||||
"stopAtEntry": true,
|
||||
"cwd": "${workspaceRoot}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* C# - mono
|
||||
|
||||
Install with `install_gadget.py --force-enable-csharp` or `:VimspectorInstall
|
||||
vscode-mono-debug`.
|
||||
|
||||
***Known not to work.***
|
||||
|
||||
```json
|
||||
{
|
||||
"configurations": {
|
||||
"launch - mono": {
|
||||
"adapter": "vscode-mono-debug",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/bin/Debug/netcoreapp2.2/csharp.dll",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {}
|
||||
"runtimeExecutable": "mono",
|
||||
"runtimeArgs": [],
|
||||
"env": [],
|
||||
"externalConsole": false,
|
||||
"console": "integratedTerminal"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1401,8 +1421,6 @@ Requires:
|
|||
* [Delve][delve-install] installed, e.g. `go get -u github.com/go-delve/delve/cmd/dlv`
|
||||
* Delve to be in your PATH, or specify the `dlvToolPath` launch option
|
||||
|
||||
NOTE: Vimspector uses the ["legacy" vscode-go debug adapter](https://github.com/golang/vscode-go/blob/master/docs/debugging-legacy.md) rather than the "built-in" DAP support in Delve. You can track https://github.com/puremourning/vimspector/issues/186 for that.
|
||||
|
||||
```json
|
||||
{
|
||||
"configurations": {
|
||||
|
|
@ -1420,7 +1438,7 @@ NOTE: Vimspector uses the ["legacy" vscode-go debug adapter](https://github.com/
|
|||
```
|
||||
|
||||
See the vscode-go docs for
|
||||
[troubleshooting information](https://github.com/golang/vscode-go/blob/master/docs/debugging-legacy.md#troubleshooting)
|
||||
[troubleshooting information](https://github.com/golang/vscode-go/blob/master/docs/debugging.md#troubleshooting)
|
||||
|
||||
## PHP
|
||||
|
||||
|
|
@ -1566,20 +1584,6 @@ editor plugin to use Java. I recommend [YouCompleteMe][], which has full support
|
|||
for jdt.ls, and most importantly a trivial way to load the debug adapter and to
|
||||
use it with Vimspector.
|
||||
|
||||
### Hot code replace
|
||||
|
||||
When using the [java debug server][java-debug-server], Vimspector supports the
|
||||
hot code replace custom feature. By default, when the underlying class files
|
||||
change, vimspector asks the user if they wish to reload these classes at
|
||||
runtime.
|
||||
|
||||
This behaviour can be customised:
|
||||
|
||||
* `let g:ycm_java_hotcodereplace_mode = 'ask'` - the default, ask the user for
|
||||
each reload.
|
||||
* `let g:ycm_java_hotcodereplace_mode = 'always'` - don't ask, always reload
|
||||
* `let g:ycm_java_hotcodereplace_mode = 'never'` - don't ask, never reload
|
||||
|
||||
### Usage with YouCompleteMe
|
||||
|
||||
* Set up [YCM for java][YcmJava].
|
||||
|
|
@ -1739,26 +1743,22 @@ Vimsector uses them, they will not be replaced. So to customise the signs,
|
|||
define them in your `vimrc`.
|
||||
|
||||
|
||||
| Sign | Description | Priority |
|
||||
|---------------------------|-----------------------------------------|----------|
|
||||
| `vimspectorBP` | Line breakpoint | 9 |
|
||||
| `vimspectorBPCond` | Conditional line breakpoint | 9 |
|
||||
| `vimspectorBPDisabled` | Disabled breakpoint | 9 |
|
||||
| `vimspectorPC` | Program counter (i.e. current line) | 200 |
|
||||
| `vimspectorPCBP` | Program counter and breakpoint | 200 |
|
||||
| `vimspectorCurrentThread` | Focussed thread in stack trace view | 200 |
|
||||
| `vimspectorCurrentFrame` | Current stack frame in stack trace view | 200 |
|
||||
| Sign | Description | Priority |
|
||||
|------------------------|-------------------------------------|----------|
|
||||
| `vimspectorBP` | Line breakpoint | 9 |
|
||||
| `vimspectorBPCond` | Conditional line breakpoint | 9 |
|
||||
| `vimspectorBPDisabled` | Disabled breakpoint | 9 |
|
||||
| `vimspectorPC` | Program counter (i.e. current line) | 200 |
|
||||
| `vimspectorPCBP` | Program counter and breakpoint | 200 |
|
||||
|
||||
The default symbols are the equivalent of something like the following:
|
||||
|
||||
```viml
|
||||
sign define vimspectorBP text=\ ● texthl=WarningMsg
|
||||
sign define vimspectorBPCond text=\ ◆ texthl=WarningMsg
|
||||
sign define vimspectorBPDisabled text=\ ● texthl=LineNr
|
||||
sign define vimspectorPC text=\ ▶ texthl=MatchParen linehl=CursorLine
|
||||
sign define vimspectorPCBP text=●▶ texthl=MatchParen linehl=CursorLine
|
||||
sign define vimspectorCurrentThread text=▶ texthl=MatchParen linehl=CursorLine
|
||||
sign define vimspectorCurrentFrame text=▶ texthl=Special linehl=CursorLine
|
||||
sign define vimspectorBP text=\ ● texthl=WarningMsg
|
||||
sign define vimspectorBPCond text=\ ◆ texthl=WarningMsg
|
||||
sign define vimspectorBPDisabled text=\ ● texthl=LineNr
|
||||
sign define vimspectorPC text=\ ▶ texthl=MatchParen linehl=CursorLine
|
||||
sign define vimspectorPCBP text=●▶ texthl=MatchParen linehl=CursorLine
|
||||
```
|
||||
|
||||
If the signs don't display properly, your font probably doesn't contain these
|
||||
|
|
@ -1766,13 +1766,11 @@ glyphs. You can easily change them by defining the sign in your vimrc. For
|
|||
example, you could put this in your `vimrc` to use some simple ASCII symbols:
|
||||
|
||||
```viml
|
||||
sign define vimspectorBP text=o texthl=WarningMsg
|
||||
sign define vimspectorBPCond text=o? texthl=WarningMsg
|
||||
sign define vimspectorBPDisabled text=o! texthl=LineNr
|
||||
sign define vimspectorPC text=\ > texthl=MatchParen
|
||||
sign define vimspectorPCBP text=o> texthl=MatchParen
|
||||
sign define vimspectorCurrentThread text=> texthl=MatchParen
|
||||
sign define vimspectorCurrentFrame text=> texthl=Special
|
||||
sign define vimspectorBP text=o texthl=WarningMsg
|
||||
sign define vimspectorBPCond text=o? texthl=WarningMsg
|
||||
sign define vimspectorBPDisabled text=o! texthl=LineNr
|
||||
sign define vimspectorPC text=\ > texthl=MatchParen
|
||||
sign define vimspectorPCBP text=o> texthl=MatchParen
|
||||
```
|
||||
|
||||
## Sign priority
|
||||
|
|
@ -2049,10 +2047,6 @@ hi link jsonComment Comment
|
|||
Debug adapters (for some reason) send telemetry data to clients. Vimspector simply
|
||||
displays this information in the output window. It *does not* and *will not ever*
|
||||
collect, use, forward or otherwise share any data with any third parties.
|
||||
10. Do I _have_ to put a `.vimspector.json` in the root of every project? No, you
|
||||
can put all of your adapter and debug configs in a [single directory](https://puremourning.github.io/vimspector/configuration.html#debug-configurations) if you want to, but note
|
||||
the caveat that `${workspaceRoot}` won't be calculated correctly in that case.
|
||||
The vimsepctor author uses this [a lot](https://github.com/puremourning/.vim-mac/tree/master/vimspector-conf).
|
||||
|
||||
|
||||
[ycmd]: https://github.com/Valloric/ycmd
|
||||
|
|
|
|||
|
|
@ -13,9 +13,6 @@
|
|||
" See the License for the specific language governing permissions and
|
||||
" limitations under the License.
|
||||
|
||||
if !has( 'python3' )
|
||||
finish
|
||||
endif
|
||||
|
||||
" Boilerplate {{{
|
||||
let s:save_cpo = &cpoptions
|
||||
|
|
@ -237,20 +234,6 @@ function! vimspector#GoToFrame() abort
|
|||
py3 _vimspector_session.ExpandFrameOrThread()
|
||||
endfunction
|
||||
|
||||
function! vimspector#UpFrame() abort
|
||||
if !s:Enabled()
|
||||
return
|
||||
endif
|
||||
py3 _vimspector_session.UpFrame()
|
||||
endfunction
|
||||
|
||||
function! vimspector#DownFrame() abort
|
||||
if !s:Enabled()
|
||||
return
|
||||
endif
|
||||
py3 _vimspector_session.DownFrame()
|
||||
endfunction
|
||||
|
||||
function! vimspector#AddWatch( ... ) abort
|
||||
if !s:Enabled()
|
||||
return
|
||||
|
|
@ -557,14 +540,6 @@ function! vimspector#ShowEvalBalloon( is_visual ) abort
|
|||
\ . '", 0 )' )
|
||||
endfunction
|
||||
|
||||
function! vimspector#PrintDebugInfo() abort
|
||||
if !s:Enabled()
|
||||
return
|
||||
endif
|
||||
|
||||
py3 _vimspector_session.PrintDebugInfo()
|
||||
endfunction
|
||||
|
||||
|
||||
" Boilerplate {{{
|
||||
let &cpoptions=s:save_cpo
|
||||
|
|
|
|||
|
|
@ -69,9 +69,14 @@ function! vimspector#internal#balloon#CreateTooltip( is_hover, ... ) abort
|
|||
\ 'resize': 1,
|
||||
\ 'close': 'button',
|
||||
\ 'callback': 'vimspector#internal#balloon#CloseCallback',
|
||||
\ 'mapping': 0
|
||||
\ }
|
||||
|
||||
let config = vimspector#internal#popup#SetBorderChars( config )
|
||||
" When ambiwidth is single, use prettier characters for the border. This
|
||||
" would look silly when ambiwidth is double.
|
||||
if &ambiwidth ==# 'single' && &encoding ==? 'utf-8'
|
||||
let config[ 'borderchars' ] = [ '─', '│', '─', '│', '╭', '╮', '┛', '╰' ]
|
||||
endif
|
||||
|
||||
if a:is_hover
|
||||
let config[ 'filter' ] = 'vimspector#internal#balloon#MouseFilter'
|
||||
|
|
@ -81,7 +86,6 @@ function! vimspector#internal#balloon#CreateTooltip( is_hover, ... ) abort
|
|||
let config[ 'filter' ] = 'vimspector#internal#balloon#CursorFilter'
|
||||
let config[ 'moved' ] = 'any'
|
||||
let config[ 'cursorline' ] = 1
|
||||
let config[ 'mapping' ] = 0
|
||||
let s:popup_win_id = popup_atcursor( body, config )
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -159,16 +159,15 @@ function! s:_OnCommandEvent( category, id, data, event ) abort
|
|||
call setbufvar( buffer, '&modified', 0 )
|
||||
endtry
|
||||
|
||||
" if the buffer is visible, scroll it, but don't allow autocommands to fire,
|
||||
" as this may close the current window!
|
||||
" if the buffer is visible, scroll it
|
||||
let w = bufwinnr( buffer )
|
||||
if w > 0
|
||||
let cw = winnr()
|
||||
try
|
||||
noautocmd execute w . 'wincmd w'
|
||||
noautocmd normal! Gz-
|
||||
execute w . 'wincmd w'
|
||||
normal! Gz-
|
||||
finally
|
||||
noautocmd execute cw . 'wincmd w'
|
||||
execute cw . 'wincmd w'
|
||||
endtry
|
||||
endif
|
||||
elseif a:event ==# 'exit'
|
||||
|
|
|
|||
|
|
@ -80,56 +80,6 @@ function! vimspector#internal#neopopup#HideSplash( id ) abort
|
|||
unlet s:db[ a:id ]
|
||||
endfunction
|
||||
|
||||
function! vimspector#internal#neopopup#Confirm( confirm_id,
|
||||
\ text,
|
||||
\ options,
|
||||
\ default_value,
|
||||
\ keys ) abort
|
||||
|
||||
" Neovim doesn't have an equivalent of popup_dialog, and it's way too much
|
||||
" effort to write one, so we just use confirm()...
|
||||
" Annoyingly we can't use confirm() here because for some reason it doesn't
|
||||
" render properly in a channel callback. So we use input() and mimic dialog
|
||||
" behaviour.
|
||||
let prompt = a:text
|
||||
for opt in a:options
|
||||
let prompt .= ' ' . opt
|
||||
endfor
|
||||
let prompt .= ': '
|
||||
|
||||
try
|
||||
let result = input( prompt, a:keys[ a:default_value - 1 ] )
|
||||
catch /.*/
|
||||
let result = -1
|
||||
endtry
|
||||
|
||||
" Map the results to what the vim popup stuff would return (s:ConfirmCallback
|
||||
" in popup.vim), i.e.:
|
||||
" - 1-based index of selected item, or
|
||||
" - -1 or 0 for cancellation
|
||||
if result == ''
|
||||
" User pressed ESC/ctrl-c
|
||||
let result = -1
|
||||
else
|
||||
let index = 1
|
||||
for k in a:keys
|
||||
if k ==? result
|
||||
let result = index
|
||||
break
|
||||
endif
|
||||
let index += 1
|
||||
endfor
|
||||
|
||||
if index > len( a:keys )
|
||||
let result = -1
|
||||
endif
|
||||
endif
|
||||
|
||||
py3 __import__( 'vimspector', fromlist = [ 'utils' ] ).utils.ConfirmCallback(
|
||||
\ int( vim.eval( 'a:confirm_id' ) ),
|
||||
\ int( vim.eval( 'result' ) ) )
|
||||
endfunction
|
||||
|
||||
" Boilerplate {{{
|
||||
let &cpoptions=s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
" See the License for the specific language governing permissions and
|
||||
" limitations under the License.
|
||||
scriptencoding utf-8
|
||||
|
||||
|
||||
" Boilerplate {{{
|
||||
|
|
@ -33,113 +32,6 @@ function! vimspector#internal#popup#HideSplash( id ) abort
|
|||
call popup_hide( a:id )
|
||||
endfunction
|
||||
|
||||
let s:current_selection = 0
|
||||
let s:selections = []
|
||||
let s:text = []
|
||||
|
||||
function! s:UpdatePopup( id ) abort
|
||||
let buf = copy( s:text )
|
||||
call extend( buf, s:DrawButtons() )
|
||||
call popup_settext( a:id, buf )
|
||||
endfunction
|
||||
|
||||
function! s:ConfirmKeyFilter( keys, id, key ) abort
|
||||
if a:key ==# "\<CR>"
|
||||
call popup_close( a:id, s:current_selection + 1 )
|
||||
return 1
|
||||
elseif index( [ "\<Tab>", "\<Right>" ], a:key ) >= 0
|
||||
let s:current_selection = ( s:current_selection + 1 ) % len( s:selections )
|
||||
call s:UpdatePopup( a:id )
|
||||
return 1
|
||||
elseif index( [ "\<S-Tab>", "\<Left>" ], a:key ) >= 0
|
||||
let s:current_selection = s:current_selection == 0
|
||||
\ ? len( s:selections ) - 1: s:current_selection - 1
|
||||
call s:UpdatePopup( a:id )
|
||||
return 1
|
||||
elseif a:key ==# "\<Esc>" || a:key ==# "\<C-c>"
|
||||
call popup_close( a:id, -1 )
|
||||
return 1
|
||||
endif
|
||||
|
||||
let index = 1
|
||||
for key in a:keys
|
||||
if a:key ==? key
|
||||
call popup_close( a:id, index )
|
||||
return 1
|
||||
endif
|
||||
let index += 1
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:ConfirmCallback( confirm_id, id, result ) abort
|
||||
py3 __import__( 'vimspector', fromlist = [ 'utils' ] ).utils.ConfirmCallback(
|
||||
\ int( vim.eval( 'a:confirm_id' ) ),
|
||||
\ int( vim.eval( 'a:result' ) ) )
|
||||
endfunction
|
||||
|
||||
function! s:SelectionPosition( idx ) abort
|
||||
return a:idx == 0 ? 0 : len( join( s:selections[ : a:idx - 1 ], ' ' ) ) + 1
|
||||
endfunction
|
||||
|
||||
function! s:DrawButtons() abort
|
||||
return [ {
|
||||
\ 'text': join( s:selections, ' ' ),
|
||||
\ 'props': [
|
||||
\ {
|
||||
\ 'col': s:SelectionPosition( s:current_selection ) + 1,
|
||||
\ 'length': len( s:selections[ s:current_selection ] ),
|
||||
\ 'type': 'VimspectorSelectedItem'
|
||||
\ },
|
||||
\ ]
|
||||
\ } ]
|
||||
endfunction
|
||||
|
||||
function! vimspector#internal#popup#Confirm(
|
||||
\ confirm_id,
|
||||
\ text,
|
||||
\ options,
|
||||
\ default_value,
|
||||
\ keys ) abort
|
||||
|
||||
silent! call prop_type_add( 'VimspectorSelectedItem', {
|
||||
\ 'highlight': 'PMenuSel'
|
||||
\ } )
|
||||
|
||||
let lines = split( a:text, "\n", v:true )
|
||||
let buf = []
|
||||
for line in lines
|
||||
call add( buf, { 'text': line, 'props': [] } )
|
||||
endfor
|
||||
|
||||
call add( buf, { 'text': '', 'props': [] } )
|
||||
|
||||
let s:selections = a:options
|
||||
let s:current_selection = ( a:default_value - 1 )
|
||||
|
||||
let s:text = copy( buf )
|
||||
call extend( buf, s:DrawButtons() )
|
||||
|
||||
let config = {
|
||||
\ 'callback': function( 's:ConfirmCallback', [ a:confirm_id ] ),
|
||||
\ 'filter': function( 's:ConfirmKeyFilter', [ a:keys ] ),
|
||||
\ 'mapping': v:false,
|
||||
\ }
|
||||
let config = vimspector#internal#popup#SetBorderChars( config )
|
||||
|
||||
return popup_dialog( buf, config )
|
||||
endfunction
|
||||
|
||||
function! vimspector#internal#popup#SetBorderChars( config ) abort
|
||||
" When ambiwidth is single, use prettier characters for the border. This
|
||||
" would look silly when ambiwidth is double.
|
||||
if &ambiwidth ==# 'single' && &encoding ==? 'utf-8'
|
||||
let a:config[ 'borderchars' ] = [ '─', '│', '─', '│', '╭', '╮', '┛', '╰' ]
|
||||
endif
|
||||
|
||||
return a:config
|
||||
endfunction
|
||||
|
||||
|
||||
" Boilerplate {{{
|
||||
let &cpoptions=s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
2394
doc/vimspector.txt
2394
doc/vimspector.txt
File diff suppressed because it is too large
Load diff
|
|
@ -1,13 +1,13 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.3.6)
|
||||
activesupport (6.0.3.4)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2, >= 2.2.2)
|
||||
addressable (2.8.0)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
|
|
@ -16,7 +16,7 @@ GEM
|
|||
colorator (1.1.0)
|
||||
commonmarker (0.17.13)
|
||||
ruby-enum (~> 0.5)
|
||||
concurrent-ruby (1.1.8)
|
||||
concurrent-ruby (1.1.7)
|
||||
dnsruby (1.61.5)
|
||||
simpleidn (~> 0.1)
|
||||
em-websocket (0.5.2)
|
||||
|
|
@ -30,12 +30,12 @@ GEM
|
|||
faraday-net_http (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords
|
||||
faraday-net_http (1.0.1)
|
||||
ffi (1.15.0)
|
||||
faraday-net_http (1.0.0)
|
||||
ffi (1.14.2)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (214)
|
||||
github-pages-health-check (= 1.17.0)
|
||||
github-pages (209)
|
||||
github-pages-health-check (= 1.16.1)
|
||||
jekyll (= 3.9.0)
|
||||
jekyll-avatar (= 0.7.0)
|
||||
jekyll-coffeescript (= 1.1.1)
|
||||
|
|
@ -50,9 +50,9 @@ GEM
|
|||
jekyll-readme-index (= 0.3.0)
|
||||
jekyll-redirect-from (= 0.16.0)
|
||||
jekyll-relative-links (= 0.6.1)
|
||||
jekyll-remote-theme (= 0.4.3)
|
||||
jekyll-remote-theme (= 0.4.2)
|
||||
jekyll-sass-converter (= 1.5.2)
|
||||
jekyll-seo-tag (= 2.7.1)
|
||||
jekyll-seo-tag (= 2.6.1)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-swiss (= 1.0.0)
|
||||
jekyll-theme-architect (= 0.1.1)
|
||||
|
|
@ -70,19 +70,19 @@ GEM
|
|||
jekyll-theme-time-machine (= 0.1.1)
|
||||
jekyll-titles-from-headings (= 0.5.3)
|
||||
jemoji (= 0.12.0)
|
||||
kramdown (= 2.3.1)
|
||||
kramdown (= 2.3.0)
|
||||
kramdown-parser-gfm (= 1.1.0)
|
||||
liquid (= 4.0.3)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.5.1)
|
||||
nokogiri (>= 1.10.4, < 2.0)
|
||||
rouge (= 3.26.0)
|
||||
rouge (= 3.23.0)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.17.0)
|
||||
github-pages-health-check (1.16.1)
|
||||
addressable (~> 2.3)
|
||||
dnsruby (~> 1.60)
|
||||
octokit (~> 4.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
public_suffix (~> 3.0)
|
||||
typhoeus (~> 1.3)
|
||||
html-pipeline (2.14.0)
|
||||
activesupport (>= 2)
|
||||
|
|
@ -136,15 +136,15 @@ GEM
|
|||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-relative-links (0.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-remote-theme (0.4.3)
|
||||
jekyll-remote-theme (0.4.2)
|
||||
addressable (~> 2.0)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
|
||||
rubyzip (>= 1.3.0, < 3.0)
|
||||
jekyll-sass-converter (1.5.2)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.7.1)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-seo-tag (2.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-swiss (1.0.0)
|
||||
|
|
@ -196,23 +196,23 @@ GEM
|
|||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
kramdown (2.3.1)
|
||||
kramdown (2.3.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.5.1)
|
||||
listen (3.4.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.5.1)
|
||||
mini_portile2 (2.5.0)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.14.4)
|
||||
minitest (5.14.3)
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.11.5)
|
||||
nokogiri (1.11.1)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
octokit (4.20.0)
|
||||
|
|
@ -220,16 +220,16 @@ GEM
|
|||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
public_suffix (3.1.1)
|
||||
racc (1.5.2)
|
||||
rb-fsevent (0.10.4)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
ruby-enum (0.9.0)
|
||||
rexml (3.2.4)
|
||||
rouge (3.23.0)
|
||||
ruby-enum (0.8.0)
|
||||
i18n
|
||||
ruby2_keywords (0.0.4)
|
||||
ruby2_keywords (0.0.2)
|
||||
rubyzip (2.3.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.7.4)
|
||||
|
|
@ -240,7 +240,7 @@ GEM
|
|||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simpleidn (0.2.1)
|
||||
simpleidn (0.1.1)
|
||||
unf (~> 0.1.4)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ JSON value `true`, and the suffix is stripped fom the key, resulting in the
|
|||
following:
|
||||
|
||||
```json
|
||||
"stopOnEntry": true
|
||||
"stopOnEntry#json": true
|
||||
```
|
||||
|
||||
Which is what we need.
|
||||
|
|
@ -722,7 +722,7 @@ Vimspector then orchestrates the various tools to set you up.
|
|||
"variables": {
|
||||
// Just an example of how to specify a variable manually rather than
|
||||
// vimspector asking for input from the user
|
||||
"ServiceName": "${fileBasenameNoExtension}"
|
||||
"ServiceName": "${fileBasenameNoExtention}"
|
||||
},
|
||||
|
||||
"adapter": "python-remote",
|
||||
|
|
|
|||
|
|
@ -13,13 +13,6 @@
|
|||
" See the License for the specific language governing permissions and
|
||||
" limitations under the License.
|
||||
|
||||
if !has( 'python3' )
|
||||
echohl WarningMsg
|
||||
echom 'Vimspector unavailable: Requires Vim compiled with +python3'
|
||||
echohl None
|
||||
finish
|
||||
endif
|
||||
|
||||
" Boilerplate {{{
|
||||
let s:save_cpo = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
|
@ -76,11 +69,6 @@ nnoremap <silent> <Plug>VimspectorBalloonEval
|
|||
xnoremap <silent> <Plug>VimspectorBalloonEval
|
||||
\ :<c-u>call vimspector#ShowEvalBalloon( 1 )<CR>
|
||||
|
||||
nnoremap <silent> <Plug>VimspectorUpFrame
|
||||
\ :<c-u>call vimspector#UpFrame()<CR>
|
||||
nnoremap <silent> <Plug>VimspectorDownFrame
|
||||
\ :<c-u>call vimspector#DownFrame()<CR>
|
||||
|
||||
if s:mappings ==# 'VISUAL_STUDIO'
|
||||
nmap <F5> <Plug>VimspectorContinue
|
||||
nmap <S-F5> <Plug>VimspectorStop
|
||||
|
|
@ -115,9 +103,6 @@ command! -bar -nargs=? -complete=custom,vimspector#CompleteOutput
|
|||
command! -bar
|
||||
\ VimspectorToggleLog
|
||||
\ call vimspector#ToggleLog()
|
||||
command! -bar
|
||||
\ VimspectorDebugInfo
|
||||
\ call vimspector#PrintDebugInfo()
|
||||
command! -nargs=1 -complete=custom,vimspector#CompleteExpr
|
||||
\ VimspectorEval
|
||||
\ call vimspector#Evaluate( <f-args> )
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
# vimspector - A multi-language debugging system for Vim
|
||||
# Copyright 2021 Ben Jackson
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from vimspector.debug_session import DebugSession
|
||||
from vimspector import utils, settings
|
||||
|
||||
|
||||
class JavaDebugAdapter( object ):
|
||||
def __init__( self, debug_session: DebugSession ):
|
||||
self.debug_session = debug_session
|
||||
|
||||
def OnEvent_hotcodereplace( self, message ):
|
||||
# Hack for java debug server hot-code-replace
|
||||
body = message.get( 'body' ) or {}
|
||||
|
||||
if body.get( 'type' ) != 'hotcodereplace':
|
||||
return
|
||||
|
||||
if body.get( 'changeType' ) == 'BUILD_COMPLETE':
|
||||
def handler( result ):
|
||||
if result == 1:
|
||||
self.debug_session._connection.DoRequest( None, {
|
||||
'command': 'redefineClasses',
|
||||
'arguments': {},
|
||||
} )
|
||||
|
||||
mode = settings.Get( 'java_hotcodereplace_mode' )
|
||||
if mode == 'ask':
|
||||
utils.Confirm( self.debug_session._api_prefix,
|
||||
'Code has changed, hot reload?',
|
||||
handler,
|
||||
default_value = 1 )
|
||||
elif mode == 'always':
|
||||
self.debug_session._connection.DoRequest( None, {
|
||||
'command': 'redefineClasses',
|
||||
'arguments': {},
|
||||
} )
|
||||
elif body.get( 'message' ):
|
||||
utils.UserMessage( 'Hot code replace: ' + body[ 'message' ] )
|
||||
|
|
@ -29,14 +29,14 @@ class PendingRequest( object ):
|
|||
|
||||
|
||||
class DebugAdapterConnection( object ):
|
||||
def __init__( self, handlers, send_func ):
|
||||
def __init__( self, handler, send_func ):
|
||||
self._logger = logging.getLogger( __name__ )
|
||||
utils.SetUpLogging( self._logger )
|
||||
|
||||
self._Write = send_func
|
||||
self._SetState( 'READ_HEADER' )
|
||||
self._buffer = bytes()
|
||||
self._handlers = handlers
|
||||
self._handler = handler
|
||||
self._next_message_id = 0
|
||||
self._outstanding_requests = {}
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ class DebugAdapterConnection( object ):
|
|||
|
||||
def Reset( self ):
|
||||
self._Write = None
|
||||
self._handlers = None
|
||||
self._handler = None
|
||||
|
||||
while self._outstanding_requests:
|
||||
_, request = self._outstanding_requests.popitem()
|
||||
|
|
@ -226,12 +226,7 @@ class DebugAdapterConnection( object ):
|
|||
|
||||
# self._logger.debug( 'Message received (raw): %s', payload )
|
||||
|
||||
try:
|
||||
message = json.loads( payload, strict = False )
|
||||
except Exception:
|
||||
self._logger.exception( "Invalid message received: %s", payload )
|
||||
self._SetState( 'READ_HEADER' )
|
||||
raise
|
||||
message = json.loads( payload )
|
||||
|
||||
self._logger.debug( 'Message received: {0}'.format( message ) )
|
||||
|
||||
|
|
@ -242,7 +237,7 @@ class DebugAdapterConnection( object ):
|
|||
|
||||
|
||||
def _OnMessageReceived( self, message ):
|
||||
if not self._handlers:
|
||||
if not self._handler:
|
||||
return
|
||||
|
||||
if message[ 'type' ] == 'response':
|
||||
|
|
@ -275,21 +270,25 @@ class DebugAdapterConnection( object ):
|
|||
self._logger.error( 'Request failed: {0}'.format( reason ) )
|
||||
if request.failure_handler:
|
||||
request.failure_handler( reason, message )
|
||||
elif 'OnFailure' in dir( self._handler ):
|
||||
self._handler.OnFailure( reason, request.msg, message )
|
||||
else:
|
||||
for h in self._handlers:
|
||||
if 'OnFailure' in dir( h ):
|
||||
h.OnFailure( reason, request.msg, message )
|
||||
|
||||
utils.UserMessage( 'Request failed: {0}'.format( reason ) )
|
||||
elif message[ 'type' ] == 'event':
|
||||
method = 'OnEvent_' + message[ 'event' ]
|
||||
for h in self._handlers:
|
||||
if method in dir( h ):
|
||||
getattr( h, method )( message )
|
||||
if method in dir( self._handler ):
|
||||
getattr( self._handler, method )( message )
|
||||
else:
|
||||
utils.UserMessage( 'Unhandled event: {0}'.format( message[ 'event' ] ),
|
||||
persist = True )
|
||||
elif message[ 'type' ] == 'request':
|
||||
method = 'OnRequest_' + message[ 'command' ]
|
||||
for h in self._handlers:
|
||||
if method in dir( h ):
|
||||
getattr( h, method )( message )
|
||||
if method in dir( self._handler ):
|
||||
getattr( self._handler, method )( message )
|
||||
else:
|
||||
utils.UserMessage(
|
||||
'Unhandled request: {0}'.format( message[ 'command' ] ),
|
||||
persist = True )
|
||||
|
||||
|
||||
def _KillTimer( request ):
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import shlex
|
|||
import subprocess
|
||||
import functools
|
||||
import vim
|
||||
import importlib
|
||||
|
||||
from vimspector import ( breakpoints,
|
||||
code,
|
||||
|
|
@ -577,14 +576,6 @@ class DebugSession( object ):
|
|||
def ExpandFrameOrThread( self ):
|
||||
self._stackTraceView.ExpandFrameOrThread()
|
||||
|
||||
@IfConnected()
|
||||
def UpFrame( self ):
|
||||
self._stackTraceView.UpFrame()
|
||||
|
||||
@IfConnected()
|
||||
def DownFrame( self ):
|
||||
self._stackTraceView.DownFrame()
|
||||
|
||||
def ToggleLog( self ):
|
||||
if self._HasUI():
|
||||
return self.ShowOutput( 'Vimspector' )
|
||||
|
|
@ -894,21 +885,8 @@ class DebugSession( object ):
|
|||
self._splash_screen,
|
||||
"Unable to start adapter" )
|
||||
else:
|
||||
if 'custom_handler' in self._adapter:
|
||||
spec = self._adapter[ 'custom_handler' ]
|
||||
if isinstance( spec, dict ):
|
||||
module = spec[ 'module' ]
|
||||
cls = spec[ 'class' ]
|
||||
else:
|
||||
module, cls = spec.rsplit( '.', 1 )
|
||||
|
||||
CustomHandler = getattr( importlib.import_module( module ), cls )
|
||||
handlers = [ CustomHandler( self ), self ]
|
||||
else:
|
||||
handlers = [ self ]
|
||||
|
||||
self._connection = debug_adapter_connection.DebugAdapterConnection(
|
||||
handlers,
|
||||
self,
|
||||
lambda msg: utils.Call(
|
||||
"vimspector#internal#{}#Send".format( self._connection_type ),
|
||||
msg ) )
|
||||
|
|
@ -916,58 +894,39 @@ class DebugSession( object ):
|
|||
self._logger.info( 'Debug Adapter Started' )
|
||||
|
||||
def _StopDebugAdapter( self, interactive = False, callback = None ):
|
||||
self._splash_screen = utils.DisplaySplash(
|
||||
self._api_prefix,
|
||||
self._splash_screen,
|
||||
"Shutting down debug adapter..." )
|
||||
|
||||
def handler( *args ):
|
||||
self._splash_screen = utils.HideSplash( self._api_prefix,
|
||||
self._splash_screen )
|
||||
|
||||
if callback:
|
||||
self._logger.debug( "Setting server exit handler before disconnect" )
|
||||
assert not self._run_on_server_exit
|
||||
self._run_on_server_exit = callback
|
||||
|
||||
vim.eval( 'vimspector#internal#{}#StopDebugSession()'.format(
|
||||
self._connection_type ) )
|
||||
|
||||
arguments = {}
|
||||
|
||||
def disconnect():
|
||||
self._splash_screen = utils.DisplaySplash(
|
||||
self._api_prefix,
|
||||
self._splash_screen,
|
||||
"Shutting down debug adapter..." )
|
||||
|
||||
def handler( *args ):
|
||||
self._splash_screen = utils.HideSplash( self._api_prefix,
|
||||
self._splash_screen )
|
||||
|
||||
if callback:
|
||||
self._logger.debug( "Setting server exit handler before disconnect" )
|
||||
assert not self._run_on_server_exit
|
||||
self._run_on_server_exit = callback
|
||||
|
||||
vim.eval( 'vimspector#internal#{}#StopDebugSession()'.format(
|
||||
self._connection_type ) )
|
||||
|
||||
self._connection.DoRequest( handler, {
|
||||
'command': 'disconnect',
|
||||
'arguments': arguments,
|
||||
}, failure_handler = handler, timeout = 5000 )
|
||||
|
||||
if not interactive:
|
||||
disconnect()
|
||||
elif not self._server_capabilities.get( 'supportTerminateDebuggee' ):
|
||||
disconnect()
|
||||
elif not self._stackTraceView.AnyThreadsRunning():
|
||||
disconnect()
|
||||
else:
|
||||
def handle_choice( choice ):
|
||||
if choice == 1:
|
||||
# yes
|
||||
if ( interactive and
|
||||
self._server_capabilities.get( 'supportTerminateDebuggee' ) ):
|
||||
if self._stackTraceView.AnyThreadsRunning():
|
||||
choice = utils.AskForInput( "Terminate debuggee [Y/N/default]? ", "" )
|
||||
if choice == "Y" or choice == "y":
|
||||
arguments[ 'terminateDebuggee' ] = True
|
||||
elif choice == 2:
|
||||
# no
|
||||
elif choice == "N" or choice == 'n':
|
||||
arguments[ 'terminateDebuggee' ] = False
|
||||
elif choice <= 0:
|
||||
# Abort
|
||||
return
|
||||
# Else, use server default
|
||||
|
||||
disconnect()
|
||||
self._connection.DoRequest( handler, {
|
||||
'command': 'disconnect',
|
||||
'arguments': arguments,
|
||||
}, failure_handler = handler, timeout = 5000 )
|
||||
|
||||
utils.Confirm( self._api_prefix,
|
||||
"Terminate debuggee?",
|
||||
handle_choice,
|
||||
default_value = 3,
|
||||
options = [ '(Y)es', '(N)o', '(D)efault' ],
|
||||
keys = [ 'y', 'n', 'd' ] )
|
||||
# TODO: Use the 'tarminate' request if supportsTerminateRequest set
|
||||
|
||||
|
||||
def _PrepareAttach( self, adapter_config, launch_config ):
|
||||
|
|
@ -1270,37 +1229,6 @@ class DebugSession( object ):
|
|||
self._stackTraceView.LoadThreads( True )
|
||||
|
||||
|
||||
@IfConnected()
|
||||
@RequiresUI()
|
||||
def PrintDebugInfo( self ):
|
||||
def Line():
|
||||
return ( "--------------------------------------------------------------"
|
||||
"------------------" )
|
||||
|
||||
def Pretty( obj ):
|
||||
if obj is None:
|
||||
return [ "None" ]
|
||||
return [ Line() ] + json.dumps( obj, indent=2 ).splitlines() + [ Line() ]
|
||||
|
||||
|
||||
debugInfo = [
|
||||
"Vimspector Debug Info",
|
||||
Line(),
|
||||
f"ConnectionType: { self._connection_type }",
|
||||
"Adapter: " ] + Pretty( self._adapter ) + [
|
||||
"Configuration: " ] + Pretty( self._configuration ) + [
|
||||
f"API Prefix: { self._api_prefix }",
|
||||
f"Launch/Init: { self._launch_complete } / { self._init_complete }",
|
||||
f"Workspace Root: { self._workspace_root }",
|
||||
"Launch Config: " ] + Pretty( self._launch_config ) + [
|
||||
"Server Capabilities: " ] + Pretty( self._server_capabilities ) + [
|
||||
]
|
||||
|
||||
self._outputView.ClearCategory( 'DebugInfo' )
|
||||
self._outputView.Print( "DebugInfo", debugInfo )
|
||||
self.ShowOutput( "DebugInfo" )
|
||||
|
||||
|
||||
def OnEvent_loadedSource( self, msg ):
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@ GADGETS = {
|
|||
root,
|
||||
gadget ),
|
||||
'all': {
|
||||
'version': '1.6.0',
|
||||
'version': '0.27.0',
|
||||
"adapters": {
|
||||
"vscode-cpptools": {
|
||||
"name": "cppdbg",
|
||||
"command": [
|
||||
"${gadgetDir}/vscode-cpptools/debugAdapters/bin/OpenDebugAD7"
|
||||
"${gadgetDir}/vscode-cpptools/debugAdapters/OpenDebugAD7"
|
||||
],
|
||||
"attach": {
|
||||
"pidProperty": "processId",
|
||||
|
|
@ -53,17 +53,17 @@ GADGETS = {
|
|||
'linux': {
|
||||
'file_name': 'cpptools-linux.vsix',
|
||||
'checksum':
|
||||
'c25299bcfb46b22d41aa3f125df7184e6282a35ff9fb69c47def744cb4778f55',
|
||||
'3695202e1e75a03de18049323b66d868165123f26151f8c974a480eaf0205435',
|
||||
},
|
||||
'macos': {
|
||||
'file_name': 'cpptools-osx-arm64.vsix',
|
||||
'file_name': 'cpptools-osx.vsix',
|
||||
'checksum':
|
||||
'ceb3e8cdaa2b5bb45af50913ddd8402089969748af8d70f5d46480408287ba6f',
|
||||
'cb061e3acd7559a539e5586f8d3f535101c4ec4e8a48195856d1d39380b5cf3c',
|
||||
},
|
||||
'windows': {
|
||||
'file_name': 'cpptools-win32.vsix',
|
||||
'checksum':
|
||||
'ef7ac5831874a3c7dbf0feb826bfda2be579aff9b6d990622fff1d0d4ede00d1',
|
||||
'aa294368ed16d48c59e49c8000e146eae5a19ad07b654efed5db8ec93b24229e',
|
||||
"adapters": {
|
||||
"vscode-cpptools": {
|
||||
"name": "cppdbg",
|
||||
|
|
@ -86,6 +86,29 @@ GADGETS = {
|
|||
},
|
||||
},
|
||||
},
|
||||
'vscode-python': {
|
||||
'language': 'python.legacy',
|
||||
'enabled': False,
|
||||
'download': {
|
||||
'url': 'https://github.com/Microsoft/vscode-python/releases/download/'
|
||||
'${version}/${file_name}',
|
||||
},
|
||||
'all': {
|
||||
'version': '2019.11.50794',
|
||||
'file_name': 'ms-python-release.vsix',
|
||||
'checksum':
|
||||
'6a9edf9ecabed14aac424e6007858068204a3638bf3bb4f235bd6035d823acc6',
|
||||
},
|
||||
'adapters': {
|
||||
"vscode-python": {
|
||||
"name": "vscode-python",
|
||||
"command": [
|
||||
"node",
|
||||
"${gadgetDir}/vscode-python/out/client/debugger/debugAdapter/main.js",
|
||||
],
|
||||
}
|
||||
},
|
||||
},
|
||||
'debugpy': {
|
||||
'language': 'python',
|
||||
'download': {
|
||||
|
|
@ -136,8 +159,7 @@ GADGETS = {
|
|||
"port": "${DAPPort}",
|
||||
"configuration": {
|
||||
"cwd": "${workspaceRoot}"
|
||||
},
|
||||
'custom_handler': 'vimspector.custom.java.JavaDebugAdapter'
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
@ -211,15 +233,15 @@ GADGETS = {
|
|||
'format': 'tar',
|
||||
},
|
||||
'all': {
|
||||
'version': '1.2.0-782'
|
||||
'version': '1.2.0-635'
|
||||
},
|
||||
'macos': {
|
||||
'file_name': 'netcoredbg-osx.tar.gz',
|
||||
'checksum':
|
||||
'',
|
||||
'71c773e34d358950f25119bade7e3081c4c2f9d71847bd49027ca5792e918beb',
|
||||
},
|
||||
'linux': {
|
||||
'file_name': 'netcoredbg-linux-bionic-amd64.tar.gz',
|
||||
'file_name': 'netcoredbg-linux-bionic.tar.gz',
|
||||
'checksum': '',
|
||||
},
|
||||
'windows': {
|
||||
|
|
@ -246,6 +268,41 @@ GADGETS = {
|
|||
},
|
||||
}
|
||||
},
|
||||
'vscode-mono-debug': {
|
||||
'language': 'csharp',
|
||||
'enabled': False,
|
||||
'download': {
|
||||
'url': 'https://marketplace.visualstudio.com/_apis/public/gallery/'
|
||||
'publishers/ms-vscode/vsextensions/mono-debug/${version}/'
|
||||
'vspackage',
|
||||
'target': 'vscode-mono-debug.vsix.gz',
|
||||
'format': 'zip.gz',
|
||||
},
|
||||
'all': {
|
||||
'file_name': 'vscode-mono-debug.vsix',
|
||||
'version': '0.16.2',
|
||||
'checksum':
|
||||
'121eca297d83daeeb1e6e1d791305d1827998dbd595c330086b3b94d33dba3b9',
|
||||
},
|
||||
'adapters': {
|
||||
'vscode-mono-debug': {
|
||||
"name": "mono-debug",
|
||||
"command": [
|
||||
"mono",
|
||||
"${gadgetDir}/vscode-mono-debug/bin/Release/mono-debug.exe"
|
||||
],
|
||||
"attach": {
|
||||
"pidSelect": "none"
|
||||
},
|
||||
"configuration": {
|
||||
"cwd": "${workspaceRoot}",
|
||||
"console": "integratedTerminal",
|
||||
"args": [],
|
||||
"env": {}
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
'vscode-bash-debug': {
|
||||
'language': 'bash',
|
||||
'download': {
|
||||
|
|
@ -323,10 +380,10 @@ GADGETS = {
|
|||
'${version}/${file_name}',
|
||||
},
|
||||
'all': {
|
||||
'version': 'v1.17.0',
|
||||
'file_name': 'php-debug-1.17.0.vsix',
|
||||
'version': 'v1.14.9',
|
||||
'file_name': 'php-debug.vsix',
|
||||
'checksum':
|
||||
'd0fff272503414b6696cc737bc2e18e060fdd5e5dc4bcaf38ae7373afd8d8bc9',
|
||||
'0c5709cbbffe26b12aa63a88142195a9a045a5d8fca7fe63d62c789fe601630d',
|
||||
},
|
||||
'adapters': {
|
||||
'vscode-php-debug': {
|
||||
|
|
@ -394,12 +451,12 @@ GADGETS = {
|
|||
'${version}/${file_name}',
|
||||
},
|
||||
'all': {
|
||||
'version': 'v1.6.6',
|
||||
'version': 'v1.5.3',
|
||||
},
|
||||
'macos': {
|
||||
'file_name': 'codelldb-aarch64-darwin.vsix',
|
||||
'file_name': 'codelldb-x86_64-darwin.vsix',
|
||||
'checksum':
|
||||
'5adc3b9139eabdafd825bd5efc55df4424a203fb2b6087b425cd434956e7ec58',
|
||||
'7505bc1cdfcfd1cb981e2996aec62d63577440709bac31dcadb41a3b4b44631a',
|
||||
'make_executable': [
|
||||
'adapter/codelldb',
|
||||
'lldb/bin/debugserver',
|
||||
|
|
@ -410,7 +467,7 @@ GADGETS = {
|
|||
'linux': {
|
||||
'file_name': 'codelldb-x86_64-linux.vsix',
|
||||
'checksum':
|
||||
'eda2cd9b3089dcc0524c273e91ffb5875fe08c930bf643739a2cd1846e1f98d6',
|
||||
'ce7efc3e94d775368e5942a02bf5c326b6809a0b4c389f79ffa6a8f6f6b72139',
|
||||
'make_executable': [
|
||||
'adapter/codelldb',
|
||||
'lldb/bin/lldb',
|
||||
|
|
@ -421,7 +478,7 @@ GADGETS = {
|
|||
'windows': {
|
||||
'file_name': 'codelldb-x86_64-windows.vsix',
|
||||
'checksum':
|
||||
'8ddebe8381a3d22dc3d95139c3797fda06b5cc34aadf300e13b1c516b9da95fe',
|
||||
'',
|
||||
'make_executable': []
|
||||
},
|
||||
'adapters': {
|
||||
|
|
|
|||
|
|
@ -358,8 +358,7 @@ def InstallCppTools( name, root, gadget ):
|
|||
# It's hilarious, but the execute bits aren't set in the vsix. So they
|
||||
# actually have javascript code which does this. It's just a horrible horrible
|
||||
# hack that really is not funny.
|
||||
MakeExecutable(
|
||||
os.path.join( extension, 'debugAdapters', 'bin', 'OpenDebugAD7' ) )
|
||||
MakeExecutable( os.path.join( extension, 'debugAdapters', 'OpenDebugAD7' ) )
|
||||
with open( os.path.join( extension, 'package.json' ) ) as f:
|
||||
package = json.load( f )
|
||||
runtime_dependencies = package[ 'runtimeDependencies' ]
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ class TabBuffer( object ):
|
|||
BUFFER_MAP = {
|
||||
'console': 'Console',
|
||||
'stdout': 'Console',
|
||||
'output': 'Console',
|
||||
'stderr': 'stderr',
|
||||
'telemetry': None,
|
||||
}
|
||||
|
|
@ -65,11 +64,8 @@ class OutputView( object ):
|
|||
self._api_prefix = api_prefix
|
||||
VIEWS.add( self )
|
||||
|
||||
def Print( self, category, text: typing.Union[ str, list ] ):
|
||||
if not isinstance( text, list ):
|
||||
text = text.splitlines()
|
||||
|
||||
self._Print( category, text )
|
||||
def Print( self, categroy, text ):
|
||||
self._Print( 'server', text.splitlines() )
|
||||
|
||||
def OnOutput( self, event ):
|
||||
category = CategoryToBuffer( event.get( 'category' ) or 'output' )
|
||||
|
|
@ -108,26 +104,13 @@ class OutputView( object ):
|
|||
|
||||
def Clear( self ):
|
||||
for category, tab_buffer in self._buffers.items():
|
||||
self._CleanUpBuffer( category, tab_buffer )
|
||||
if tab_buffer.is_job:
|
||||
utils.CleanUpCommand( category, self._api_prefix )
|
||||
utils.CleanUpHiddenBuffer( tab_buffer.buf )
|
||||
|
||||
# FIXME: nunmenu the WinBar ?
|
||||
self._buffers = {}
|
||||
|
||||
|
||||
def ClearCategory( self, category: str ):
|
||||
if category not in self._buffers:
|
||||
return
|
||||
|
||||
self._CleanUpBuffer( category, self._buffers[ category ] )
|
||||
|
||||
|
||||
def _CleanUpBuffer( self, category: str, tab_buffer: TabBuffer ):
|
||||
if tab_buffer.is_job:
|
||||
utils.CleanUpCommand( category, self._api_prefix )
|
||||
|
||||
utils.CleanUpHiddenBuffer( tab_buffer.buf )
|
||||
|
||||
|
||||
def WindowIsValid( self ):
|
||||
return self._window.valid
|
||||
|
||||
|
|
|
|||
|
|
@ -42,8 +42,7 @@ DEFAULTS = {
|
|||
'vimspectorBP': 9,
|
||||
'vimspectorBPCond': 9,
|
||||
'vimspectorBPDisabled': 9,
|
||||
'vimspectorCurrentThread': 200,
|
||||
'vimspectorCurrentFrame': 200,
|
||||
'vimspectorCurrentThread': 200
|
||||
},
|
||||
|
||||
# Installer
|
||||
|
|
@ -60,10 +59,7 @@ DEFAULTS = {
|
|||
'expand_or_jump': [ '<CR>', '<2-LeftMouse>' ],
|
||||
'focus_thread': [ '<leader><CR>' ],
|
||||
}
|
||||
},
|
||||
|
||||
# Custom
|
||||
'java_hotcodereplace_mode': 'ask',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -102,8 +102,7 @@ class StackTraceView( object ):
|
|||
self._scratch_buffers = []
|
||||
|
||||
# FIXME: This ID is by group, so should be module scope
|
||||
self._current_thread_sign_id = 0 # 1 when used
|
||||
self._current_frame_sign_id = 0 # 2 when used
|
||||
self._next_sign_id = 1
|
||||
|
||||
utils.SetUpHiddenBuffer( self._buf, 'vimspector.StackTrace' )
|
||||
utils.SetUpUIWindow( win )
|
||||
|
|
@ -128,7 +127,6 @@ class StackTraceView( object ):
|
|||
':call vimspector#SetCurrentThread()<CR>' )
|
||||
|
||||
win.options[ 'cursorline' ] = False
|
||||
win.options[ 'signcolumn' ] = 'auto'
|
||||
|
||||
|
||||
if not signs.SignDefined( 'vimspectorCurrentThread' ):
|
||||
|
|
@ -138,13 +136,6 @@ class StackTraceView( object ):
|
|||
texthl = 'MatchParen',
|
||||
linehl = 'CursorLine' )
|
||||
|
||||
if not signs.SignDefined( 'vimspectorCurrentFrame' ):
|
||||
signs.DefineSign( 'vimspectorCurrentFrame',
|
||||
text = '▶ ',
|
||||
double_text = '▶',
|
||||
texthl = 'Special',
|
||||
linehl = 'CursorLine' )
|
||||
|
||||
self._line_to_frame = {}
|
||||
self._line_to_thread = {}
|
||||
|
||||
|
|
@ -166,12 +157,9 @@ class StackTraceView( object ):
|
|||
self._sources = {}
|
||||
self._requesting_threads = StackTraceView.ThreadRequestState.NO
|
||||
self._pending_thread_request = None
|
||||
if self._current_thread_sign_id:
|
||||
signs.UnplaceSign( self._current_thread_sign_id, 'VimspectorStackTrace' )
|
||||
self._current_thread_sign_id = 0
|
||||
if self._current_frame_sign_id:
|
||||
signs.UnplaceSign( self._current_frame_sign_id, 'VimspectorStackTrace' )
|
||||
self._current_frame_sign_id = 0
|
||||
if self._next_sign_id:
|
||||
signs.UnplaceSign( self._next_sign_id, 'VimspectorStackTrace' )
|
||||
self._next_sign_id = 0
|
||||
|
||||
with utils.ModifiableScratchBuffer( self._buf ):
|
||||
utils.ClearBuffer( self._buf )
|
||||
|
|
@ -285,10 +273,10 @@ class StackTraceView( object ):
|
|||
self._line_to_frame.clear()
|
||||
self._line_to_thread.clear()
|
||||
|
||||
if self._current_thread_sign_id:
|
||||
signs.UnplaceSign( self._current_thread_sign_id, 'VimspectorStackTrace' )
|
||||
if self._next_sign_id:
|
||||
signs.UnplaceSign( self._next_sign_id, 'VimspectorStackTrace' )
|
||||
else:
|
||||
self._current_thread_sign_id = 1
|
||||
self._next_sign_id = 1
|
||||
|
||||
with utils.ModifiableScratchBuffer( self._buf ):
|
||||
with utils.RestoreCursorPosition():
|
||||
|
|
@ -302,7 +290,7 @@ class StackTraceView( object ):
|
|||
f'({thread.State()})' )
|
||||
|
||||
if self._current_thread == thread.id:
|
||||
signs.PlaceSign( self._current_thread_sign_id,
|
||||
signs.PlaceSign( self._next_sign_id,
|
||||
'VimspectorStackTrace',
|
||||
'vimspectorCurrentThread',
|
||||
self._buf.name,
|
||||
|
|
@ -379,46 +367,6 @@ class StackTraceView( object ):
|
|||
self._JumpToFrame( frame )
|
||||
|
||||
|
||||
|
||||
def _GetFrameOffset( self, delta ):
|
||||
thread: Thread
|
||||
for thread in self._threads:
|
||||
if thread.id != self._current_thread:
|
||||
continue
|
||||
|
||||
if not thread.stacktrace:
|
||||
return
|
||||
|
||||
frame_idx = None
|
||||
for index, frame in enumerate( thread.stacktrace ):
|
||||
if frame == self._current_frame:
|
||||
frame_idx = index
|
||||
break
|
||||
|
||||
if frame_idx is not None:
|
||||
target_idx = frame_idx + delta
|
||||
if target_idx >= 0 and target_idx < len( thread.stacktrace ):
|
||||
return thread.stacktrace[ target_idx ]
|
||||
|
||||
break
|
||||
|
||||
|
||||
def UpFrame( self ):
|
||||
frame = self._GetFrameOffset( 1 )
|
||||
if not frame:
|
||||
utils.UserMessage( 'Top of stack' )
|
||||
else:
|
||||
self._JumpToFrame( frame, 'up' )
|
||||
|
||||
|
||||
def DownFrame( self ):
|
||||
frame = self._GetFrameOffset( -1 )
|
||||
if not frame:
|
||||
utils.UserMessage( 'Bottom of stack' )
|
||||
else:
|
||||
self._JumpToFrame( frame, 'down' )
|
||||
|
||||
|
||||
def AnyThreadsRunning( self ):
|
||||
for thread in self._threads:
|
||||
if thread.state != Thread.TERMINATED:
|
||||
|
|
@ -433,7 +381,6 @@ class StackTraceView( object ):
|
|||
# Should this set the current _Thread_ too ? If i jump to a frame in
|
||||
# Thread 2, should that become the focussed thread ?
|
||||
self._current_frame = frame
|
||||
self._DrawThreads()
|
||||
return self._session.SetCurrentFrame( self._current_frame, reason )
|
||||
return False
|
||||
|
||||
|
|
@ -531,11 +478,6 @@ class StackTraceView( object ):
|
|||
if not thread.IsExpanded():
|
||||
return
|
||||
|
||||
if self._current_frame_sign_id:
|
||||
signs.UnplaceSign( self._current_frame_sign_id, 'VimspectorStackTrace' )
|
||||
else:
|
||||
self._current_frame_sign_id = 2
|
||||
|
||||
for frame in thread.stacktrace:
|
||||
if frame.get( 'source' ):
|
||||
source = frame[ 'source' ]
|
||||
|
|
@ -560,14 +502,6 @@ class StackTraceView( object ):
|
|||
source[ 'name' ],
|
||||
frame[ 'line' ] ) )
|
||||
|
||||
if ( self._current_frame is not None and
|
||||
self._current_frame[ 'id' ] == frame[ 'id' ] ):
|
||||
signs.PlaceSign( self._current_frame_sign_id,
|
||||
'VimspectorStackTrace',
|
||||
'vimspectorCurrentFrame',
|
||||
self._buf.name,
|
||||
line )
|
||||
|
||||
self._line_to_frame[ line ] = ( thread, frame )
|
||||
|
||||
def _ResolveSource( self, source, and_then ):
|
||||
|
|
|
|||
|
|
@ -375,44 +375,6 @@ def AskForInput( prompt, default_value = None, completion = None ):
|
|||
return None
|
||||
|
||||
|
||||
CONFIRM = {}
|
||||
CONFIRM_ID = 0
|
||||
|
||||
|
||||
def ConfirmCallback( confirm_id, result ):
|
||||
try:
|
||||
handler = CONFIRM.pop( confirm_id )
|
||||
except KeyError:
|
||||
UserMessage( f"Internal error: unexpected callback id { confirm_id }",
|
||||
persist = True,
|
||||
error = True )
|
||||
return
|
||||
|
||||
handler( result )
|
||||
|
||||
|
||||
def Confirm( api_prefix,
|
||||
prompt,
|
||||
handler,
|
||||
default_value = 2,
|
||||
options: list = None,
|
||||
keys: list = None ):
|
||||
if not options:
|
||||
options = [ '(Y)es', '(N)o' ]
|
||||
if not keys:
|
||||
keys = [ 'y', 'n' ]
|
||||
|
||||
global CONFIRM_ID
|
||||
CONFIRM_ID += 1
|
||||
CONFIRM[ CONFIRM_ID ] = handler
|
||||
Call( f'vimspector#internal#{ api_prefix }popup#Confirm',
|
||||
CONFIRM_ID,
|
||||
prompt,
|
||||
options,
|
||||
default_value,
|
||||
keys )
|
||||
|
||||
|
||||
def AppendToBuffer( buf, line_or_lines, modified=False ):
|
||||
line = 1
|
||||
try:
|
||||
|
|
@ -441,10 +403,8 @@ def AppendToBuffer( buf, line_or_lines, modified=False ):
|
|||
|
||||
|
||||
|
||||
def ClearBuffer( buf, modified = False ):
|
||||
def ClearBuffer( buf ):
|
||||
buf[ : ] = None
|
||||
if not modified:
|
||||
buf.options[ 'modified' ] = False
|
||||
|
||||
|
||||
def SetBufferContents( buf, lines, modified=False ):
|
||||
|
|
@ -534,6 +494,7 @@ def _Substitute( template, mapping ):
|
|||
if mo.group( 'braceddefault' ) is not None:
|
||||
named = mo.group( 'defname' )
|
||||
if named not in mapping:
|
||||
''
|
||||
raise MissingSubstitution(
|
||||
named,
|
||||
mo.group( 'default' ).replace( '\\}', '}' ) )
|
||||
|
|
@ -575,11 +536,8 @@ def ExpandReferencesInString( orig_s,
|
|||
if default_value is None and e.default_value is not None:
|
||||
try:
|
||||
default_value = _Substitute( e.default_value, mapping )
|
||||
except MissingSubstitution as e2:
|
||||
if e2.name in calculus:
|
||||
default_value = calculus[ e2.name ]()
|
||||
else:
|
||||
default_value = e.default_value
|
||||
except MissingSubstitution:
|
||||
default_value = e.default_value
|
||||
|
||||
mapping[ key ] = AskForInput( 'Enter value for {}: '.format( key ),
|
||||
default_value )
|
||||
|
|
|
|||
12
run_tests
12
run_tests
|
|
@ -21,7 +21,7 @@ out_fd=1
|
|||
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
"--basedir"|"--base-dir"|"--test-base")
|
||||
"--basedir")
|
||||
shift
|
||||
SetBaseDir $1
|
||||
shift
|
||||
|
|
@ -36,7 +36,7 @@ while [ -n "$1" ]; do
|
|||
INSTALL=$1
|
||||
shift
|
||||
;;
|
||||
"--update"|"--upgrade")
|
||||
"--update")
|
||||
UPDATE=1
|
||||
shift
|
||||
;;
|
||||
|
|
@ -91,8 +91,7 @@ if [ "$INSTALL" = "1" ] || [ "$INSTALL" = "script" ]; then
|
|||
if ! python3 $(dirname $0)/install_gadget.py \
|
||||
--basedir ${BASEDIR} \
|
||||
${INSTALLER_ARGS} \
|
||||
--all \
|
||||
--force-enable-csharp; then
|
||||
--all; then
|
||||
echo "Script installation reported errors" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -103,7 +102,7 @@ if [ "$INSTALL" = "1" ] || [ "$INSTALL" = "vim" ]; then
|
|||
--cmd "${BASEDIR_CMD}" \
|
||||
-c 'autocmd User VimspectorInstallSuccess qa!' \
|
||||
-c 'autocmd User VimspectorInstallFailed cquit!' \
|
||||
-c "VimspectorInstall --all netcoredbg"; then
|
||||
-c "VimspectorInstall --all"; then
|
||||
echo "Vim installation reported errors" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -145,9 +144,6 @@ set -e
|
|||
pushd tests/testdata/cpp/simple
|
||||
make clean all
|
||||
popd
|
||||
pushd support/test/csharp
|
||||
dotnet build
|
||||
popd
|
||||
set +e
|
||||
echo "%DONE - built test programs"
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ function s:SetUpTerminal()
|
|||
let padding = 4
|
||||
let cols = max( [ min( [ &columns - left_bar - code - padding, 80 ] ), 10 ] )
|
||||
call win_gotoid( terminal_win )
|
||||
execute string(cols) . 'wincmd |'
|
||||
execute cols . 'wincmd |'
|
||||
endfunction
|
||||
|
||||
function! s:CustomiseWinBar()
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
# Manually updating shipped gadgets
|
||||
|
||||
Download the gadget files manuall from their official source into this dir.
|
||||
Run `./checksum.py <list of files>` to get the checksums.
|
||||
|
||||
Update ../../python3/vimspector/gadgets.py with the new version and the
|
||||
checksums.
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import hashlib
|
||||
import sys
|
||||
|
||||
|
||||
def GetChecksumSHA254( file_path ):
|
||||
with open( file_path, 'rb' ) as existing_file:
|
||||
return hashlib.sha256( existing_file.read() ).hexdigest()
|
||||
|
||||
|
||||
for arg in sys.argv[ 1: ]:
|
||||
print( f"{ arg } = { GetChecksumSHA254( arg ) }" )
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"$schema": "https://puremourning.github.io/vimspector/schema/vimspector.schema.json",
|
||||
"configurations": {
|
||||
"Run Current Script": {
|
||||
"adapter": "vscode-bash",
|
||||
"autoselect": false,
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"cwd": "${fileDirname}",
|
||||
"args": [ "*${args}" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,15 +15,6 @@
|
|||
"program": "${workspaceRoot}/test",
|
||||
"stopAtEntry": true
|
||||
}
|
||||
},
|
||||
"cpptools": {
|
||||
"adapter": "vscode-cpptools",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/test",
|
||||
"stopOnEntry": true,
|
||||
"MIMode": "lldb"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
def Settings( **kwargs ):
|
||||
return {
|
||||
'flags': [ '-x', 'c++', '-Wall', '-Wextra', '-std=c++17' ]
|
||||
'flags': [ '-x', 'c++', '-Wall', '-Wextra' ]
|
||||
}
|
||||
|
|
|
|||
1
support/test/csharp/.gitignore
vendored
1
support/test/csharp/.gitignore
vendored
|
|
@ -1,3 +1,2 @@
|
|||
bin/
|
||||
obj/Debug
|
||||
obj/
|
||||
|
|
|
|||
|
|
@ -1,57 +1,25 @@
|
|||
{
|
||||
"adapters": {
|
||||
"netcoredbg-debuglog": {
|
||||
"attach": {
|
||||
"pidProperty": "processId",
|
||||
"pidSelect": "ask"
|
||||
"configurations": {
|
||||
"launch - netcoredbg": {
|
||||
"adapter": "netcoredbg",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/bin/Debug/netcoreapp2.2/csharp.dll",
|
||||
"args": [],
|
||||
"stopAtEntry": true
|
||||
}
|
||||
},
|
||||
"command": [
|
||||
"${gadgetDir}/netcoredbg/netcoredbg",
|
||||
"--interpreter=vscode",
|
||||
"--engineLogging=${workspaceRoot}/netcoredbg.engine.log",
|
||||
"--log=${workspaceRoot}/netcoredbg.log"
|
||||
],
|
||||
"configuration": {
|
||||
"cwd": "${workspaceRoot}"
|
||||
},
|
||||
"name": "netcoredbg"
|
||||
}
|
||||
},
|
||||
"configurations": {
|
||||
//
|
||||
// NOTE:
|
||||
// If you add to this, you must update tests/get_configurations.test.vim
|
||||
//
|
||||
|
||||
"launch - netcoredbg": {
|
||||
"adapter": "netcoredbg",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/bin/Debug/netcoreapp3.1/csharp.dll",
|
||||
"args": [],
|
||||
"stopAtEntry": false
|
||||
}
|
||||
},
|
||||
"launch - netcoredbg - with debug log": {
|
||||
"adapter": "netcoredbg-debuglog",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/bin/Debug/netcoreapp3.1/csharp.dll",
|
||||
"args": [],
|
||||
"stopAtEntry": false
|
||||
}
|
||||
},
|
||||
"launch - mono": {
|
||||
"adapter": "vscode-mono-debug",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/Program.exe",
|
||||
"console": "integratedTerminal",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"args": [],
|
||||
"env": {}
|
||||
"launch - mono": {
|
||||
"adapter": "vscode-mono-debug",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/Program.exe",
|
||||
"console": "integratedTerminal",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"args": [],
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26124.0
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp", "csharp.csproj", "{91DB205F-E422-430B-BBB8-955110C7B3B6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
|
@ -17,18 +15,4 @@ Global
|
|||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{91DB205F-E422-430B-BBB8-955110C7B3B6}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
|||
5
support/test/csharp/obj/csharp.csproj.nuget.cache
Normal file
5
support/test/csharp/obj/csharp.csproj.nuget.cache
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"version": 1,
|
||||
"dgSpecHash": "6/vdr7YprlSIoQecv/nNuLNflFpO0X7eN7jHUinZTsgian9nYpmHMWirsDWMi5l+29TH+Qy8O/QfaB/48QtjRQ==",
|
||||
"success": true
|
||||
}
|
||||
21
support/test/csharp/obj/csharp.csproj.nuget.g.props
Normal file
21
support/test/csharp/obj/csharp.csproj.nuget.g.props
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/ben/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/ben/.nuget/packages/;/usr/local/share/dotnet/sdk/NuGetFallbackFolder</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.7.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.2.0/build/netcoreapp2.2/Microsoft.NETCore.App.props" Condition="Exists('/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.2.0/build/netcoreapp2.2/Microsoft.NETCore.App.props')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
10
support/test/csharp/obj/csharp.csproj.nuget.g.targets
Normal file
10
support/test/csharp/obj/csharp.csproj.nuget.g.targets
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="/usr/local/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets" Condition="Exists('/usr/local/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets')" />
|
||||
<Import Project="/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.2.0/build/netcoreapp2.2/Microsoft.NETCore.App.targets" Condition="Exists('/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.2.0/build/netcoreapp2.2/Microsoft.NETCore.App.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
748
support/test/csharp/obj/project.assets.json
Normal file
748
support/test/csharp/obj/project.assets.json
Normal file
|
|
@ -0,0 +1,748 @@
|
|||
{
|
||||
"version": 3,
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v2.2": {
|
||||
"Microsoft.NETCore.App/2.2.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.DotNetHostPolicy": "2.2.0",
|
||||
"Microsoft.NETCore.Platforms": "2.2.0",
|
||||
"Microsoft.NETCore.Targets": "2.0.0",
|
||||
"NETStandard.Library": "2.0.3"
|
||||
},
|
||||
"compile": {
|
||||
"ref/netcoreapp2.2/Microsoft.CSharp.dll": {},
|
||||
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll": {},
|
||||
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.AppContext.dll": {},
|
||||
"ref/netcoreapp2.2/System.Buffers.dll": {},
|
||||
"ref/netcoreapp2.2/System.Collections.Concurrent.dll": {},
|
||||
"ref/netcoreapp2.2/System.Collections.Immutable.dll": {},
|
||||
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll": {},
|
||||
"ref/netcoreapp2.2/System.Collections.Specialized.dll": {},
|
||||
"ref/netcoreapp2.2/System.Collections.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll": {},
|
||||
"ref/netcoreapp2.2/System.ComponentModel.dll": {},
|
||||
"ref/netcoreapp2.2/System.Configuration.dll": {},
|
||||
"ref/netcoreapp2.2/System.Console.dll": {},
|
||||
"ref/netcoreapp2.2/System.Core.dll": {},
|
||||
"ref/netcoreapp2.2/System.Data.Common.dll": {},
|
||||
"ref/netcoreapp2.2/System.Data.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Process.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll": {},
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll": {},
|
||||
"ref/netcoreapp2.2/System.Drawing.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.Drawing.dll": {},
|
||||
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll": {},
|
||||
"ref/netcoreapp2.2/System.Globalization.Calendars.dll": {},
|
||||
"ref/netcoreapp2.2/System.Globalization.Extensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Globalization.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.Compression.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.Pipes.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll": {},
|
||||
"ref/netcoreapp2.2/System.IO.dll": {},
|
||||
"ref/netcoreapp2.2/System.Linq.Expressions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Linq.Parallel.dll": {},
|
||||
"ref/netcoreapp2.2/System.Linq.Queryable.dll": {},
|
||||
"ref/netcoreapp2.2/System.Linq.dll": {},
|
||||
"ref/netcoreapp2.2/System.Memory.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Http.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.HttpListener.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Mail.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.NameResolution.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Ping.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Requests.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Security.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.ServicePoint.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.Sockets.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.WebClient.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.WebProxy.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.dll": {},
|
||||
"ref/netcoreapp2.2/System.Net.dll": {},
|
||||
"ref/netcoreapp2.2/System.Numerics.Vectors.dll": {},
|
||||
"ref/netcoreapp2.2/System.Numerics.dll": {},
|
||||
"ref/netcoreapp2.2/System.ObjectModel.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Extensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Metadata.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Reflection.dll": {},
|
||||
"ref/netcoreapp2.2/System.Resources.Reader.dll": {},
|
||||
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll": {},
|
||||
"ref/netcoreapp2.2/System.Resources.Writer.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Extensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Handles.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Loader.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Numerics.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.dll": {},
|
||||
"ref/netcoreapp2.2/System.Runtime.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Claims.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.Principal.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.SecureString.dll": {},
|
||||
"ref/netcoreapp2.2/System.Security.dll": {},
|
||||
"ref/netcoreapp2.2/System.ServiceModel.Web.dll": {},
|
||||
"ref/netcoreapp2.2/System.ServiceProcess.dll": {},
|
||||
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Text.Encoding.dll": {},
|
||||
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Overlapped.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Thread.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.Timer.dll": {},
|
||||
"ref/netcoreapp2.2/System.Threading.dll": {},
|
||||
"ref/netcoreapp2.2/System.Transactions.Local.dll": {},
|
||||
"ref/netcoreapp2.2/System.Transactions.dll": {},
|
||||
"ref/netcoreapp2.2/System.ValueTuple.dll": {},
|
||||
"ref/netcoreapp2.2/System.Web.HttpUtility.dll": {},
|
||||
"ref/netcoreapp2.2/System.Web.dll": {},
|
||||
"ref/netcoreapp2.2/System.Windows.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.Linq.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.Serialization.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.XDocument.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll": {},
|
||||
"ref/netcoreapp2.2/System.Xml.dll": {},
|
||||
"ref/netcoreapp2.2/System.dll": {},
|
||||
"ref/netcoreapp2.2/WindowsBase.dll": {},
|
||||
"ref/netcoreapp2.2/mscorlib.dll": {},
|
||||
"ref/netcoreapp2.2/netstandard.dll": {}
|
||||
},
|
||||
"build": {
|
||||
"build/netcoreapp2.2/Microsoft.NETCore.App.props": {},
|
||||
"build/netcoreapp2.2/Microsoft.NETCore.App.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
|
||||
"type": "package"
|
||||
},
|
||||
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.DotNetHostResolver": "2.2.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.DotNetAppHost": "2.2.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/2.2.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Targets/2.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
}
|
||||
},
|
||||
"NETStandard.Library/2.0.3": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0"
|
||||
},
|
||||
"compile": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard1.0/_._": {}
|
||||
},
|
||||
"build": {
|
||||
"build/netstandard2.0/NETStandard.Library.targets": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Microsoft.NETCore.App/2.2.0": {
|
||||
"sha512": "7z5l8Jp324S8bU8+yyWeYHXUFYvKyiI5lqS1dXgTzOx1H69Qbf6df12kCKlNX45LpMfCMd4U3M6p7Rl5Zk7SLA==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.app/2.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE.TXT",
|
||||
"Microsoft.NETCore.App.versions.txt",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"build/netcoreapp2.2/Microsoft.NETCore.App.PlatformManifest.txt",
|
||||
"build/netcoreapp2.2/Microsoft.NETCore.App.props",
|
||||
"build/netcoreapp2.2/Microsoft.NETCore.App.targets",
|
||||
"microsoft.netcore.app.2.2.0.nupkg.sha512",
|
||||
"microsoft.netcore.app.nuspec",
|
||||
"ref/netcoreapp2.2/Microsoft.CSharp.dll",
|
||||
"ref/netcoreapp2.2/Microsoft.CSharp.xml",
|
||||
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll",
|
||||
"ref/netcoreapp2.2/Microsoft.VisualBasic.xml",
|
||||
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll",
|
||||
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.AppContext.dll",
|
||||
"ref/netcoreapp2.2/System.Buffers.dll",
|
||||
"ref/netcoreapp2.2/System.Buffers.xml",
|
||||
"ref/netcoreapp2.2/System.Collections.Concurrent.dll",
|
||||
"ref/netcoreapp2.2/System.Collections.Concurrent.xml",
|
||||
"ref/netcoreapp2.2/System.Collections.Immutable.dll",
|
||||
"ref/netcoreapp2.2/System.Collections.Immutable.xml",
|
||||
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll",
|
||||
"ref/netcoreapp2.2/System.Collections.NonGeneric.xml",
|
||||
"ref/netcoreapp2.2/System.Collections.Specialized.dll",
|
||||
"ref/netcoreapp2.2/System.Collections.Specialized.xml",
|
||||
"ref/netcoreapp2.2/System.Collections.dll",
|
||||
"ref/netcoreapp2.2/System.Collections.xml",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Annotations.xml",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.xml",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.xml",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.dll",
|
||||
"ref/netcoreapp2.2/System.ComponentModel.xml",
|
||||
"ref/netcoreapp2.2/System.Configuration.dll",
|
||||
"ref/netcoreapp2.2/System.Console.dll",
|
||||
"ref/netcoreapp2.2/System.Console.xml",
|
||||
"ref/netcoreapp2.2/System.Core.dll",
|
||||
"ref/netcoreapp2.2/System.Data.Common.dll",
|
||||
"ref/netcoreapp2.2/System.Data.Common.xml",
|
||||
"ref/netcoreapp2.2/System.Data.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Contracts.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Debug.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Process.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Process.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tools.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.xml",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll",
|
||||
"ref/netcoreapp2.2/System.Diagnostics.Tracing.xml",
|
||||
"ref/netcoreapp2.2/System.Drawing.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.Drawing.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.Drawing.dll",
|
||||
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll",
|
||||
"ref/netcoreapp2.2/System.Globalization.Calendars.dll",
|
||||
"ref/netcoreapp2.2/System.Globalization.Extensions.dll",
|
||||
"ref/netcoreapp2.2/System.Globalization.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.xml",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Compression.xml",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.xml",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.xml",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.dll",
|
||||
"ref/netcoreapp2.2/System.IO.FileSystem.xml",
|
||||
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll",
|
||||
"ref/netcoreapp2.2/System.IO.IsolatedStorage.xml",
|
||||
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll",
|
||||
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.xml",
|
||||
"ref/netcoreapp2.2/System.IO.Pipes.dll",
|
||||
"ref/netcoreapp2.2/System.IO.Pipes.xml",
|
||||
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll",
|
||||
"ref/netcoreapp2.2/System.IO.dll",
|
||||
"ref/netcoreapp2.2/System.Linq.Expressions.dll",
|
||||
"ref/netcoreapp2.2/System.Linq.Expressions.xml",
|
||||
"ref/netcoreapp2.2/System.Linq.Parallel.dll",
|
||||
"ref/netcoreapp2.2/System.Linq.Parallel.xml",
|
||||
"ref/netcoreapp2.2/System.Linq.Queryable.dll",
|
||||
"ref/netcoreapp2.2/System.Linq.Queryable.xml",
|
||||
"ref/netcoreapp2.2/System.Linq.dll",
|
||||
"ref/netcoreapp2.2/System.Linq.xml",
|
||||
"ref/netcoreapp2.2/System.Memory.dll",
|
||||
"ref/netcoreapp2.2/System.Memory.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Http.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Http.xml",
|
||||
"ref/netcoreapp2.2/System.Net.HttpListener.dll",
|
||||
"ref/netcoreapp2.2/System.Net.HttpListener.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Mail.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Mail.xml",
|
||||
"ref/netcoreapp2.2/System.Net.NameResolution.dll",
|
||||
"ref/netcoreapp2.2/System.Net.NameResolution.xml",
|
||||
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll",
|
||||
"ref/netcoreapp2.2/System.Net.NetworkInformation.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Ping.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Ping.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Requests.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Requests.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Security.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Security.xml",
|
||||
"ref/netcoreapp2.2/System.Net.ServicePoint.dll",
|
||||
"ref/netcoreapp2.2/System.Net.ServicePoint.xml",
|
||||
"ref/netcoreapp2.2/System.Net.Sockets.dll",
|
||||
"ref/netcoreapp2.2/System.Net.Sockets.xml",
|
||||
"ref/netcoreapp2.2/System.Net.WebClient.dll",
|
||||
"ref/netcoreapp2.2/System.Net.WebClient.xml",
|
||||
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll",
|
||||
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.xml",
|
||||
"ref/netcoreapp2.2/System.Net.WebProxy.dll",
|
||||
"ref/netcoreapp2.2/System.Net.WebProxy.xml",
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll",
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.Client.xml",
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.dll",
|
||||
"ref/netcoreapp2.2/System.Net.WebSockets.xml",
|
||||
"ref/netcoreapp2.2/System.Net.dll",
|
||||
"ref/netcoreapp2.2/System.Numerics.Vectors.dll",
|
||||
"ref/netcoreapp2.2/System.Numerics.Vectors.xml",
|
||||
"ref/netcoreapp2.2/System.Numerics.dll",
|
||||
"ref/netcoreapp2.2/System.ObjectModel.dll",
|
||||
"ref/netcoreapp2.2/System.ObjectModel.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Emit.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.Extensions.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Metadata.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Metadata.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll",
|
||||
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.xml",
|
||||
"ref/netcoreapp2.2/System.Reflection.dll",
|
||||
"ref/netcoreapp2.2/System.Resources.Reader.dll",
|
||||
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll",
|
||||
"ref/netcoreapp2.2/System.Resources.ResourceManager.xml",
|
||||
"ref/netcoreapp2.2/System.Resources.Writer.dll",
|
||||
"ref/netcoreapp2.2/System.Resources.Writer.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Extensions.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Extensions.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Handles.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.InteropServices.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Loader.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Loader.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Numerics.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Numerics.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.xml",
|
||||
"ref/netcoreapp2.2/System.Runtime.Serialization.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.dll",
|
||||
"ref/netcoreapp2.2/System.Runtime.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Claims.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Claims.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.xml",
|
||||
"ref/netcoreapp2.2/System.Security.Principal.dll",
|
||||
"ref/netcoreapp2.2/System.Security.Principal.xml",
|
||||
"ref/netcoreapp2.2/System.Security.SecureString.dll",
|
||||
"ref/netcoreapp2.2/System.Security.dll",
|
||||
"ref/netcoreapp2.2/System.ServiceModel.Web.dll",
|
||||
"ref/netcoreapp2.2/System.ServiceProcess.dll",
|
||||
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll",
|
||||
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.xml",
|
||||
"ref/netcoreapp2.2/System.Text.Encoding.dll",
|
||||
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll",
|
||||
"ref/netcoreapp2.2/System.Text.RegularExpressions.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Overlapped.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Overlapped.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Tasks.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Thread.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Thread.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.ThreadPool.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.Timer.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.Timer.xml",
|
||||
"ref/netcoreapp2.2/System.Threading.dll",
|
||||
"ref/netcoreapp2.2/System.Threading.xml",
|
||||
"ref/netcoreapp2.2/System.Transactions.Local.dll",
|
||||
"ref/netcoreapp2.2/System.Transactions.Local.xml",
|
||||
"ref/netcoreapp2.2/System.Transactions.dll",
|
||||
"ref/netcoreapp2.2/System.ValueTuple.dll",
|
||||
"ref/netcoreapp2.2/System.Web.HttpUtility.dll",
|
||||
"ref/netcoreapp2.2/System.Web.HttpUtility.xml",
|
||||
"ref/netcoreapp2.2/System.Web.dll",
|
||||
"ref/netcoreapp2.2/System.Windows.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.Linq.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.ReaderWriter.xml",
|
||||
"ref/netcoreapp2.2/System.Xml.Serialization.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XDocument.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XDocument.xml",
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.xml",
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XPath.xml",
|
||||
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll",
|
||||
"ref/netcoreapp2.2/System.Xml.XmlSerializer.xml",
|
||||
"ref/netcoreapp2.2/System.Xml.dll",
|
||||
"ref/netcoreapp2.2/System.dll",
|
||||
"ref/netcoreapp2.2/WindowsBase.dll",
|
||||
"ref/netcoreapp2.2/mscorlib.dll",
|
||||
"ref/netcoreapp2.2/netstandard.dll",
|
||||
"runtime.json"
|
||||
]
|
||||
},
|
||||
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
|
||||
"sha512": "DrhaKInRKKvN6Ns2VNIlC7ZffLOp9THf8cO6X4fytPRJovJUbF49/zzx4WfgX9E44FMsw9hT8hrKiIqDSHvGvA==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.dotnetapphost/2.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"microsoft.netcore.dotnetapphost.2.2.0.nupkg.sha512",
|
||||
"microsoft.netcore.dotnetapphost.nuspec",
|
||||
"runtime.json"
|
||||
]
|
||||
},
|
||||
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
|
||||
"sha512": "FJie7IoPZFaPgNDxhZGmDBQP/Bs5vPdfca/G2Wf9gd6LIvMYkZcibtmJwB4tcf4KXkaOYfIOo4Cl9sEPMsSzkw==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.dotnethostpolicy/2.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"microsoft.netcore.dotnethostpolicy.2.2.0.nupkg.sha512",
|
||||
"microsoft.netcore.dotnethostpolicy.nuspec",
|
||||
"runtime.json"
|
||||
]
|
||||
},
|
||||
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
|
||||
"sha512": "spDm3AJYmebthDNhzY17YLPtvbc+Y1lCLVeiIH1uLJ/hZaM+40pBiPefFR8J1u66Ndkqi8ipR2tEbqPnYnjRhw==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.dotnethostresolver/2.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"microsoft.netcore.dotnethostresolver.2.2.0.nupkg.sha512",
|
||||
"microsoft.netcore.dotnethostresolver.nuspec",
|
||||
"runtime.json"
|
||||
]
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/2.2.0": {
|
||||
"sha512": "T/J+XZo+YheFTJh8/4uoeJDdz5qOmOMkjg6/VL8mHJ9AnP8+fmV/kcbxeXsob0irRNiChf+V0ig1MCRLp/+Kog==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.platforms/2.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"lib/netstandard1.0/_._",
|
||||
"microsoft.netcore.platforms.2.2.0.nupkg.sha512",
|
||||
"microsoft.netcore.platforms.nuspec",
|
||||
"runtime.json",
|
||||
"useSharedDesignerContext.txt",
|
||||
"version.txt"
|
||||
]
|
||||
},
|
||||
"Microsoft.NETCore.Targets/2.0.0": {
|
||||
"sha512": "odP/tJj1z6GylFpNo7pMtbd/xQgTC3Ex2If63dRTL38bBNMwsBnJ+RceUIyHdRBC0oik/3NehYT+oECwBhIM3Q==",
|
||||
"type": "package",
|
||||
"path": "microsoft.netcore.targets/2.0.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"lib/netstandard1.0/_._",
|
||||
"microsoft.netcore.targets.2.0.0.nupkg.sha512",
|
||||
"microsoft.netcore.targets.nuspec",
|
||||
"runtime.json",
|
||||
"useSharedDesignerContext.txt",
|
||||
"version.txt"
|
||||
]
|
||||
},
|
||||
"NETStandard.Library/2.0.3": {
|
||||
"sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
|
||||
"type": "package",
|
||||
"path": "netstandard.library/2.0.3",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
"LICENSE.TXT",
|
||||
"THIRD-PARTY-NOTICES.TXT",
|
||||
"build/netstandard2.0/NETStandard.Library.targets",
|
||||
"build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.AppContext.dll",
|
||||
"build/netstandard2.0/ref/System.Collections.Concurrent.dll",
|
||||
"build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
|
||||
"build/netstandard2.0/ref/System.Collections.Specialized.dll",
|
||||
"build/netstandard2.0/ref/System.Collections.dll",
|
||||
"build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
|
||||
"build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
|
||||
"build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
|
||||
"build/netstandard2.0/ref/System.ComponentModel.dll",
|
||||
"build/netstandard2.0/ref/System.Console.dll",
|
||||
"build/netstandard2.0/ref/System.Core.dll",
|
||||
"build/netstandard2.0/ref/System.Data.Common.dll",
|
||||
"build/netstandard2.0/ref/System.Data.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.Process.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
|
||||
"build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
|
||||
"build/netstandard2.0/ref/System.Drawing.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.Drawing.dll",
|
||||
"build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
|
||||
"build/netstandard2.0/ref/System.Globalization.Calendars.dll",
|
||||
"build/netstandard2.0/ref/System.Globalization.Extensions.dll",
|
||||
"build/netstandard2.0/ref/System.Globalization.dll",
|
||||
"build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
|
||||
"build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
|
||||
"build/netstandard2.0/ref/System.IO.Compression.dll",
|
||||
"build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
|
||||
"build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
|
||||
"build/netstandard2.0/ref/System.IO.FileSystem.dll",
|
||||
"build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
|
||||
"build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
|
||||
"build/netstandard2.0/ref/System.IO.Pipes.dll",
|
||||
"build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
|
||||
"build/netstandard2.0/ref/System.IO.dll",
|
||||
"build/netstandard2.0/ref/System.Linq.Expressions.dll",
|
||||
"build/netstandard2.0/ref/System.Linq.Parallel.dll",
|
||||
"build/netstandard2.0/ref/System.Linq.Queryable.dll",
|
||||
"build/netstandard2.0/ref/System.Linq.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Http.dll",
|
||||
"build/netstandard2.0/ref/System.Net.NameResolution.dll",
|
||||
"build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Ping.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Requests.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Security.dll",
|
||||
"build/netstandard2.0/ref/System.Net.Sockets.dll",
|
||||
"build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
|
||||
"build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
|
||||
"build/netstandard2.0/ref/System.Net.WebSockets.dll",
|
||||
"build/netstandard2.0/ref/System.Net.dll",
|
||||
"build/netstandard2.0/ref/System.Numerics.dll",
|
||||
"build/netstandard2.0/ref/System.ObjectModel.dll",
|
||||
"build/netstandard2.0/ref/System.Reflection.Extensions.dll",
|
||||
"build/netstandard2.0/ref/System.Reflection.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.Reflection.dll",
|
||||
"build/netstandard2.0/ref/System.Resources.Reader.dll",
|
||||
"build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
|
||||
"build/netstandard2.0/ref/System.Resources.Writer.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Extensions.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Handles.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Numerics.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.Serialization.dll",
|
||||
"build/netstandard2.0/ref/System.Runtime.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Claims.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
|
||||
"build/netstandard2.0/ref/System.Security.Principal.dll",
|
||||
"build/netstandard2.0/ref/System.Security.SecureString.dll",
|
||||
"build/netstandard2.0/ref/System.ServiceModel.Web.dll",
|
||||
"build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
|
||||
"build/netstandard2.0/ref/System.Text.Encoding.dll",
|
||||
"build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.Overlapped.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.Tasks.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.Thread.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.Timer.dll",
|
||||
"build/netstandard2.0/ref/System.Threading.dll",
|
||||
"build/netstandard2.0/ref/System.Transactions.dll",
|
||||
"build/netstandard2.0/ref/System.ValueTuple.dll",
|
||||
"build/netstandard2.0/ref/System.Web.dll",
|
||||
"build/netstandard2.0/ref/System.Windows.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.Linq.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.Serialization.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.XDocument.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.XPath.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
|
||||
"build/netstandard2.0/ref/System.Xml.dll",
|
||||
"build/netstandard2.0/ref/System.dll",
|
||||
"build/netstandard2.0/ref/mscorlib.dll",
|
||||
"build/netstandard2.0/ref/netstandard.dll",
|
||||
"build/netstandard2.0/ref/netstandard.xml",
|
||||
"lib/netstandard1.0/_._",
|
||||
"netstandard.library.2.0.3.nupkg.sha512",
|
||||
"netstandard.library.nuspec"
|
||||
]
|
||||
}
|
||||
},
|
||||
"projectFileDependencyGroups": {
|
||||
".NETCoreApp,Version=v2.2": [
|
||||
"Microsoft.NETCore.App >= 2.2.0"
|
||||
]
|
||||
},
|
||||
"packageFolders": {
|
||||
"/Users/ben/.nuget/packages/": {},
|
||||
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/Users/ben/.vim/bundle/vimspector/support/test/csharp/csharp.csproj",
|
||||
"projectName": "csharp",
|
||||
"projectPath": "/Users/ben/.vim/bundle/vimspector/support/test/csharp/csharp.csproj",
|
||||
"packagesPath": "/Users/ben/.nuget/packages/",
|
||||
"outputPath": "/Users/ben/.vim/bundle/vimspector/support/test/csharp/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"/Users/ben/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"netcoreapp2.2"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp2.2": {
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp2.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[2.2.0, )",
|
||||
"autoReferenced": true
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/3.1.402/RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,4 @@
|
|||
{
|
||||
"adapters": {
|
||||
"dlv-dap": {
|
||||
"variables": {
|
||||
"port": "${unusedLocalPort}"
|
||||
},
|
||||
"command": [
|
||||
"$HOME/go/bin/dlv",
|
||||
"dap",
|
||||
"--listen",
|
||||
"127.0.0.1:${port}"
|
||||
],
|
||||
"port": "${port}"
|
||||
}
|
||||
},
|
||||
"configurations": {
|
||||
"run": {
|
||||
"adapter": "vscode-go",
|
||||
|
|
@ -26,21 +12,6 @@
|
|||
"env": { "GO111MODULE": "off" }
|
||||
}
|
||||
},
|
||||
"run-dap": {
|
||||
"adapter": "dlv-dap",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"env": { "GO111MODULE": "off" },
|
||||
|
||||
"mode": "debug", // debug|test
|
||||
"program": "${workspaceRoot}/hello-world.go"
|
||||
|
||||
// "args": [],
|
||||
// "buildFlags": ...
|
||||
// "stackTraceDepth": ...,
|
||||
// "showGlobalVariables": true,
|
||||
}
|
||||
},
|
||||
"run-exec": {
|
||||
// NOTE: To use this you _must_ disable optimistaion:
|
||||
// go build -o hello_world -gcflags="all=-N -l"
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"configurations": {
|
||||
"run-cmd": {
|
||||
"adapter": "vscode-go",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/cmd/namestartswithvowel/main.go",
|
||||
"mode": "debug",
|
||||
"dlvToolPath": "$HOME/go/bin/dlv",
|
||||
"dlvLoadConfig": {
|
||||
"maxArrayValues": 1000,
|
||||
"maxStringLen": 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
"test-current-file": {
|
||||
"adapter": "vscode-go",
|
||||
"configuration": {
|
||||
"request": "launch",
|
||||
"mode": "test",
|
||||
"program": "${fileDirname}",
|
||||
"cwd": "${fileDirname}",
|
||||
"dlvToolPath": "$GOPATH/bin/dlv",
|
||||
"env": {},
|
||||
"args": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# Purpose
|
||||
|
||||
This example comes with two example vimspector configs for the Go programming language.
|
||||
|
||||
1) `run-cmd` will launch the main programme under `cmd/namestartswithvowel`.
|
||||
1) `test-current-file` will run the tests in the current file in debug mode.
|
||||
|
||||
## Example use-cases
|
||||
|
||||
### run-cmd
|
||||
|
||||
* Open `cmd/namestartswithvowel/main.go`
|
||||
* Add a breakpoint somewhere within the programme
|
||||
* Start the debugger (`:call vimspector#Continue()` or your relevant keymapping)
|
||||
* Select the first launch configuration (`1: run-cmd`)
|
||||
|
||||
### test-current-file
|
||||
|
||||
* Open `internal/vowels/vowels_test.go`
|
||||
* Add a breakpoint somewhere within the test
|
||||
* Start the debugger (`:call vimspector#Continue()` or your relevant keymapping)
|
||||
* Select the second launch configuration (`2: test-current-file`)
|
||||
|
||||
## Additional Configuration
|
||||
|
||||
There are two additional configuration options specified under `run-cmd`; these parameters configure the maximum string/array size to be shown while debugging.
|
||||
|
||||
```
|
||||
"dlvLoadConfig": {
|
||||
"maxArrayValues": 1000,
|
||||
"maxStringLen": 1000
|
||||
}
|
||||
```
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"example.com/internal/vowels"
|
||||
)
|
||||
|
||||
func main() {
|
||||
names := []string{"Simon", "Bob", "Jennifer", "Amy", "Duke", "Elizabeth"}
|
||||
|
||||
for _, n := range names {
|
||||
if vowels.NameStartsWithVowel(n) {
|
||||
fmt.Printf("%s starts with a vowel!\n", n)
|
||||
continue
|
||||
}
|
||||
|
||||
fmt.Printf("%s does not start with a vowel!\n", n)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
module example.com
|
||||
|
||||
go 1.16
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package vowels
|
||||
|
||||
import "strings"
|
||||
|
||||
func NameStartsWithVowel(name string) bool {
|
||||
s := strings.Split(strings.ToLower(name), "")
|
||||
|
||||
return s[0] == "a" || s[0] == "e" || s[0] == "i" || s[0] == "o" || s[0] == "u"
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package vowels
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNameStartsWithVowel(t *testing.T) {
|
||||
testCases := []struct {
|
||||
input string
|
||||
expectedOutput bool
|
||||
}{
|
||||
{
|
||||
input: "Simon",
|
||||
expectedOutput: false,
|
||||
},
|
||||
{
|
||||
input: "Andy",
|
||||
expectedOutput: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range testCases {
|
||||
t.Run(fmt.Sprintf("%s should product %t", tt.input, tt.expectedOutput), func(t *testing.T) {
|
||||
out := NameStartsWithVowel(tt.input)
|
||||
if out != tt.expectedOutput {
|
||||
t.Errorf("%s produced %t, when %t was expected", tt.input, out, tt.expectedOutput)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<artifactId>TestApplication</artifactId>
|
||||
<version>1</version>
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -70,12 +70,6 @@ RUN mkdir -p /home/linuxbrew/.linuxbrew &&\
|
|||
|
||||
RUN /home/linuxbrew/.linuxbrew/bin/brew install golang
|
||||
|
||||
# dotnet
|
||||
RUN curl -sSL https://dot.net/v1/dotnet-install.sh \
|
||||
| bash /dev/stdin --channel LTS --install-dir /usr/share/dotnet && \
|
||||
update-alternatives --install /usr/bin/dotnet dotnet \
|
||||
/usr/share/dotnet/dotnet 1
|
||||
|
||||
# clean up
|
||||
RUN /home/linuxbrew/.linuxbrew/bin/brew cleanup && \
|
||||
rm -rf ~/.cache && \
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ function Test_Get_Configurations()
|
|||
let configs = vimspector#GetConfigurations()
|
||||
call assert_equal([
|
||||
\ 'launch - netcoredbg',
|
||||
\ 'launch - netcoredbg - with debug log',
|
||||
\ 'launch - mono',
|
||||
\ ], configs)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
function! SetUp()
|
||||
call vimspector#test#setup#SetUpWithMappings( v:none )
|
||||
endfunction
|
||||
|
||||
function! ClearDown()
|
||||
call vimspector#test#setup#ClearDown()
|
||||
endfunction
|
||||
|
||||
function! SetUp_Test_Go_Simple()
|
||||
let g:vimspector_enable_mappings = 'HUMAN'
|
||||
endfunction
|
||||
|
||||
function! Test_CSharp_Simple()
|
||||
let fn='Program.cs'
|
||||
lcd ../support/test/csharp
|
||||
exe 'edit ' . fn
|
||||
|
||||
call vimspector#SetLineBreakpoint( fn, 31 )
|
||||
call vimspector#LaunchWithSettings( {
|
||||
\ 'configuration': 'launch - netcoredbg'
|
||||
\ } )
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 31, 7 )
|
||||
call WaitForAssert( {->
|
||||
\ vimspector#test#signs#AssertPCIsAtLineInBuffer( fn, 31 )
|
||||
\ } )
|
||||
|
||||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 32, 12 )
|
||||
call WaitForAssert( {->
|
||||
\ vimspector#test#signs#AssertPCIsAtLineInBuffer( fn, 32 )
|
||||
\ } )
|
||||
|
||||
call vimspector#test#setup#Reset()
|
||||
|
||||
lcd -
|
||||
%bwipeout!
|
||||
endfunction
|
||||
|
||||
|
||||
function! Test_Run_To_Cursor()
|
||||
let fn='Program.cs'
|
||||
lcd ../support/test/csharp
|
||||
exe 'edit ' . fn
|
||||
|
||||
call vimspector#SetLineBreakpoint( fn, 31 )
|
||||
call vimspector#LaunchWithSettings( {
|
||||
\ 'configuration': 'launch - netcoredbg'
|
||||
\ } )
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 31, 7 )
|
||||
call WaitForAssert( {->
|
||||
\ vimspector#test#signs#AssertPCIsAtLineInBuffer( fn, 31 )
|
||||
\ } )
|
||||
|
||||
call cursor( 33, 1 )
|
||||
call vimspector#RunToCursor()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 33, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ vimspector#test#signs#AssertPCIsAtLineInBuffer( fn, 33 )
|
||||
\ } )
|
||||
|
||||
call vimspector#test#setup#Reset()
|
||||
lcd -
|
||||
%bwipeout!
|
||||
endfunction
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ function! ThisTestIsFlaky()
|
|||
let g:test_is_flaky = v:true
|
||||
endfunction
|
||||
|
||||
function! AssertMatchList( expected, actual ) abort
|
||||
function! AssertMatchist( expected, actual ) abort
|
||||
let ret = assert_equal( len( a:expected ), len( a:actual ) )
|
||||
let len = min( [ len( a:expected ), len( a:actual ) ] )
|
||||
let idx = 0
|
||||
|
|
|
|||
|
|
@ -141,3 +141,29 @@ function! Test_Use_Mappings_HUMAN()
|
|||
%bwipeout!
|
||||
endfunction
|
||||
|
||||
|
||||
function! SetUp_Test_Use_Mappings_HUMAN_ForceMenu()
|
||||
let g:vimspector_enable_mappings = 'HUMAN'
|
||||
endfunction
|
||||
|
||||
function! Test_Use_Mappings_HUMAN_ForceMenu()
|
||||
call ThisTestIsFlaky()
|
||||
lcd testdata/cpp/simple
|
||||
edit simple.cpp
|
||||
call setpos( '.', [ 0, 15, 1 ] )
|
||||
|
||||
" Comma is the leader
|
||||
py3 <<EOF
|
||||
from unittest import mock
|
||||
with mock.patch( 'vimspector.utils.SelectFromList', return_value=1 ) as sfl:
|
||||
vim.eval( 'feedkeys( ",\<F5>", "xt" )' )
|
||||
sfl.assert_called()
|
||||
EOF
|
||||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( 'simple.cpp', 15, 1 )
|
||||
|
||||
call vimspector#test#setup#Reset()
|
||||
|
||||
lcd -
|
||||
%bwipeout!
|
||||
endfunction
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ class TestExpandReferencesInDict( unittest.TestCase ):
|
|||
'one': '${one}',
|
||||
'two': '${one} and ${two}',
|
||||
'three': '${three}',
|
||||
'three_with_default': '${three_with_default:${three\\}}', # uses calculus
|
||||
'four': '${four}',
|
||||
'five': '${five}',
|
||||
'list': [ '*${words}' ],
|
||||
|
|
@ -59,7 +58,6 @@ class TestExpandReferencesInDict( unittest.TestCase ):
|
|||
'one': 'one',
|
||||
'two': 'one and TWO',
|
||||
'three': '3',
|
||||
'three_with_default': '3',
|
||||
'four': 'typed text',
|
||||
'five': '5ive!',
|
||||
'list': [ 'these', 'are', 'some', 'words' ],
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call cursor( 1, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -45,7 +45,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call cursor( 1, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -56,7 +56,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
\ )
|
||||
\ } )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -70,7 +70,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call cursor( 1, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -81,7 +81,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
\ )
|
||||
\ } )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -95,7 +95,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call cursor( 1, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -106,7 +106,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
\ )
|
||||
\ } )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -121,7 +121,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call cursor( 1, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -132,7 +132,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
\ )
|
||||
\ } )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -146,7 +146,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
" So we break out of the loop
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, notify_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( notify_l )
|
||||
|
|
@ -157,7 +157,7 @@ function! Test_Multiple_Threads_Continue()
|
|||
\ )
|
||||
\ } )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -192,7 +192,7 @@ function! Test_Multiple_Threads_Step()
|
|||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Thread [0-9]\+: .* (paused)',
|
||||
\ ' .*: .*@threads.cpp:' . string( thread_l )
|
||||
|
|
@ -205,7 +205,7 @@ function! Test_Multiple_Threads_Step()
|
|||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_n, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -218,7 +218,7 @@ function! Test_Multiple_Threads_Step()
|
|||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ ],
|
||||
|
|
@ -230,7 +230,7 @@ function! Test_Multiple_Threads_Step()
|
|||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_n, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -244,7 +244,7 @@ function! Test_Multiple_Threads_Step()
|
|||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -257,7 +257,7 @@ function! Test_Multiple_Threads_Step()
|
|||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_n, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -273,7 +273,7 @@ function! Test_Multiple_Threads_Step()
|
|||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -287,7 +287,7 @@ function! Test_Multiple_Threads_Step()
|
|||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_n, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -304,7 +304,7 @@ function! Test_Multiple_Threads_Step()
|
|||
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -319,7 +319,7 @@ function! Test_Multiple_Threads_Step()
|
|||
call vimspector#StepOver()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, thread_n, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -338,7 +338,7 @@ function! Test_Multiple_Threads_Step()
|
|||
" So we break out of the loop
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( s:fn, notify_l, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
\ '+ Thread [0-9]\+: .* (paused)',
|
||||
|
|
@ -352,209 +352,6 @@ function! Test_Multiple_Threads_Step()
|
|||
\ )
|
||||
\ } )
|
||||
|
||||
call vimspector#ClearBreakpoints()
|
||||
call vimspector#test#setup#Reset()
|
||||
%bwipe!
|
||||
endfunction
|
||||
|
||||
function! Test_UpDownStack()
|
||||
let fn='../support/test/python/simple_python/main.py'
|
||||
exe 'edit ' . fn
|
||||
call setpos( '.', [ 0, 6, 1 ] )
|
||||
|
||||
call vimspector#SetLineBreakpoint( fn, 15 )
|
||||
call vimspector#LaunchWithSettings( { 'configuration': 'run' } )
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 15, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 2,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
call vimspector#DownFrame()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 15, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 2,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
|
||||
call vimspector#UpFrame()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 8, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 3,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
|
||||
call feedkeys( "\<Plug>VimspectorUpFrame", 'x' )
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 23, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 4,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
|
||||
call feedkeys( "\<Plug>VimspectorDownFrame", 'x' )
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 8, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 3,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
|
||||
call vimspector#DownFrame()
|
||||
call vimspector#test#signs#AssertCursorIsAtLineInBuffer( fn, 15, 1 )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ [
|
||||
\ '- Thread 1: MainThread (paused)',
|
||||
\ ' 2: DoSomething@main.py:15',
|
||||
\ ' 3: __init__@main.py:8',
|
||||
\ ' 4: Main@main.py:23',
|
||||
\ ' 5: <module>@main.py:29',
|
||||
\ ],
|
||||
\ GetBufLine( winbufnr( g:vimspector_session_windows.stack_trace ),
|
||||
\ 1,
|
||||
\ '$' )
|
||||
\ )
|
||||
\ } )
|
||||
call win_gotoid( g:vimspector_session_windows.stack_trace )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 1,
|
||||
\ 'vimspectorCurrentThread',
|
||||
\ 200 ) } )
|
||||
call WaitForAssert( { ->
|
||||
\ vimspector#test#signs#AssertSignGroupSingletonAtLine(
|
||||
\ 'VimspectorStackTrace',
|
||||
\ 2,
|
||||
\ 'vimspectorCurrentFrame',
|
||||
\ 200 ) } )
|
||||
wincmd w
|
||||
|
||||
|
||||
|
||||
call vimspector#ClearBreakpoints()
|
||||
call vimspector#test#setup#Reset()
|
||||
%bwipe!
|
||||
|
|
|
|||
8
tests/testdata/cpp/simple/.vimspector.json
vendored
8
tests/testdata/cpp/simple/.vimspector.json
vendored
|
|
@ -12,7 +12,7 @@
|
|||
"externalConsole": false,
|
||||
"stopAtEntry": true,
|
||||
"stopOnEntry": true,
|
||||
"MIMode": "${VIMSPECTOR_MIMODE}"
|
||||
"MImode": "${VIMSPECTOR_MIMODE}"
|
||||
},
|
||||
"breakpoints": {
|
||||
"exception": {
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
"externalConsole": false,
|
||||
"stopAtEntry": false,
|
||||
"stopOnEntry": false,
|
||||
"MIMode": "${VIMSPECTOR_MIMODE}"
|
||||
"MImode": "${VIMSPECTOR_MIMODE}"
|
||||
},
|
||||
"breakpoints": {
|
||||
"exception": {
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
"externalConsole": false,
|
||||
"stopAtEntry": false,
|
||||
"stopOnEntry": false,
|
||||
"MIMode": "${VIMSPECTOR_MIMODE}"
|
||||
"MImode": "${VIMSPECTOR_MIMODE}"
|
||||
},
|
||||
"breakpoints": {
|
||||
"exception": {
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
"configuration": {
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/${fileBasenameNoExtension}",
|
||||
"MIMode": "${VIMSPECTOR_MIMODE}",
|
||||
"MImode": "${VIMSPECTOR_MIMODE}",
|
||||
"externalConsole": false,
|
||||
"args": [
|
||||
"CALCULATED_LIST", "${CALCULATED_LIST}",
|
||||
|
|
|
|||
|
|
@ -194,7 +194,6 @@ function! Test_ExpandVariables()
|
|||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' *+ t (Test): {...}',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -212,7 +211,7 @@ function! Test_ExpandVariables()
|
|||
call feedkeys( "\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' \*- t (Test): {...}',
|
||||
|
|
@ -220,7 +219,6 @@ function! Test_ExpandVariables()
|
|||
\ ' \*- c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -231,7 +229,7 @@ function! Test_ExpandVariables()
|
|||
" Step - stays expanded
|
||||
call vimspector#StepOver()
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' - t (Test): {...}',
|
||||
|
|
@ -239,7 +237,6 @@ function! Test_ExpandVariables()
|
|||
\ ' - c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' - fffff (float): 0',
|
||||
\ ' + another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -256,7 +253,6 @@ function! Test_ExpandVariables()
|
|||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' + t (Test): {...}',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -271,7 +267,6 @@ function! Test_ExpandVariables()
|
|||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' + t (Test): {...}',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -283,7 +278,7 @@ function! Test_ExpandVariables()
|
|||
call setpos( '.', [ 0, 2, 1 ] )
|
||||
call feedkeys( "\<CR>", 'xt' )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' - t (Test): {...}',
|
||||
|
|
@ -291,7 +286,6 @@ function! Test_ExpandVariables()
|
|||
\ ' \*- c (char): 99 ''c''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -308,7 +302,6 @@ function! Test_ExpandVariables()
|
|||
\ assert_equal(
|
||||
\ [
|
||||
\ '+ Scope: Locals',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -323,7 +316,6 @@ function! Test_ExpandVariables()
|
|||
\ assert_equal(
|
||||
\ [
|
||||
\ '+ Scope: Locals',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -339,7 +331,6 @@ function! Test_ExpandVariables()
|
|||
\ assert_equal(
|
||||
\ [
|
||||
\ '+ Scope: Locals',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -387,7 +378,7 @@ function! Test_ExpandWatch()
|
|||
call feedkeys( "\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -406,7 +397,7 @@ function! Test_ExpandWatch()
|
|||
" Step - stays expanded
|
||||
call vimspector#StepOver()
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -458,7 +449,7 @@ function! Test_ExpandWatch()
|
|||
call setpos( '.', [ 0, 3, 1 ] )
|
||||
call feedkeys( "\<CR>", 'xt' )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -616,7 +607,7 @@ function! Test_EvaluateFailure()
|
|||
" Add a wtch
|
||||
call vimspector#AddWatch( 'test' )
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: test',
|
||||
|
|
@ -667,7 +658,7 @@ function! Test_VariableEval()
|
|||
\ } )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -699,7 +690,7 @@ function! Test_VariableEval()
|
|||
\ } )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -733,7 +724,7 @@ function! Test_VariableEval()
|
|||
\ } )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Evaluation error',
|
||||
\ ],
|
||||
|
|
@ -777,7 +768,7 @@ function! Test_VariableEvalExpand()
|
|||
\ } )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -795,7 +786,7 @@ function! Test_VariableEvalExpand()
|
|||
call feedkeys( "jjjj\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -815,7 +806,7 @@ function! Test_VariableEvalExpand()
|
|||
call feedkeys( "\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -855,7 +846,6 @@ function! Test_SetVariableValue_Local()
|
|||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' *+ t (Test): {...}',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -873,7 +863,7 @@ function! Test_SetVariableValue_Local()
|
|||
call feedkeys( "\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' \*- t (Test): {...}',
|
||||
|
|
@ -881,7 +871,6 @@ function! Test_SetVariableValue_Local()
|
|||
\ ' \*- c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -900,7 +889,7 @@ with mock.patch( 'vimspector.utils.InputSave' ):
|
|||
EOF
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' \*- t (Test): {...}',
|
||||
|
|
@ -908,7 +897,6 @@ EOF
|
|||
\ ' \*- c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -920,7 +908,7 @@ EOF
|
|||
call vimspector#SetVariableValue( '1234' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' \*- t (Test): {...}',
|
||||
|
|
@ -928,7 +916,6 @@ EOF
|
|||
\ ' \*- c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -940,7 +927,7 @@ EOF
|
|||
call vimspector#SetVariableValue( 'this is invalid' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '- Scope: Locals',
|
||||
\ ' \*- t (Test): {...}',
|
||||
|
|
@ -948,7 +935,6 @@ EOF
|
|||
\ ' \*- c (char): 0 ''\\0\{1,3}''',
|
||||
\ ' \*- fffff (float): 0',
|
||||
\ ' \*+ another_test (AnotherTest):\( {...}\)\?',
|
||||
\ '+ Scope: Registers',
|
||||
\ ],
|
||||
\ getbufline( winbufnr( g:vimspector_session_windows.variables ),
|
||||
\ 1,
|
||||
|
|
@ -997,7 +983,7 @@ function! Test_SetVariableValue_Watch()
|
|||
call feedkeys( "\<CR>", 'xt' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -1026,7 +1012,7 @@ EOF
|
|||
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -1046,7 +1032,7 @@ EOF
|
|||
call vimspector#SetVariableValue( '1234' )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ 'Watches: ----',
|
||||
\ 'Expression: t',
|
||||
|
|
@ -1089,7 +1075,7 @@ function! Test_SetVariableValue_Balloon()
|
|||
\ } )
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
@ -1116,7 +1102,7 @@ with mock.patch( 'vimspector.utils.InputSave' ):
|
|||
EOF
|
||||
|
||||
call WaitForAssert( {->
|
||||
\ AssertMatchList(
|
||||
\ AssertMatchist(
|
||||
\ [
|
||||
\ '{...}',
|
||||
\ ' - i: 0',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue