| Age | Commit message (Collapse) | Author | Files |
|
termdebug.vim (#38325)
that was an internal note which somehow slipped in months ago and even
survived the change to Vimscript9
closes: vim/vim#18305
https://github.com/vim/vim/commit/049c76f0e8a1cc26d724fca1a83bfd2da7012403
Co-authored-by: Simon Sobisch <simonsobisch@web.de>
|
|
Problem: termdebug :Break does not support `thread` and `if` arguments
Solution: extend :Break and :Tbreak to accept optional location, thread
{nr}, and if {expr} arguments (Yinzuo Jiang).
closes: vim/vim#19613
https://github.com/vim/vim/commit/5890ea5397743c60c3cdeb93f50239d012120823
AI-assisted: Codex
|
|
Problem: tests: termdebug test may fail and leave temp file around
(Dominique Pellé)
Solution: only run balloon_show() if the function exists, validate
termdebug is running using the g: termdebug_is_running var,
use defer to delete temporary files
Only include:
- guard balloon_show() in the termdebug plugin
- wait for g:termdebug_is_running in Test_termdebug_basic()
The remaining upstream test cleanups do not apply here.
fixes: vim/vim#15334
https://github.com/vim/vim/commit/2979cfc2627d76a9c09cad46a1647dcd4aa73f5f
Co-authored-by: Christian Brabandt <cb@256bit.org>
AI-assisted: Codex
|
|
and EndDebug functions
- Functions are way too long. Readability and maintainability should
be slightly improved.
- Some variables are re-assigned to their initial value at teardown.
This should not be needed since all internal variables are
re-initialized at startup of every Termdebug session.
Only include:
- prompt-mode buffer tracking changes around `promptbufnr`
- prompt buffer cleanup in `CloseBuffers()` and `EndDebugCommon()`
- related `BufUnload` and gdb startup failure cleanup adjustments
The remaining upstream `StartDebug_term()` refactor and helper extraction
do not apply here.
closes: vim/vim#15086
https://github.com/vim/vim/commit/225d4d9212edb27cc4bd473db565517594aaeede
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@gmail.com>
AI-assisted: Codex
|
|
For ASM and Variables buffer, check were done to make sure they existed
before attempting to close them, but not for debugged program or gdb
communication. The debugged program window is a user-facing one and
user might close it manually, so it's better to check if it exists.
https://github.com/vim/vim/commit/fce324f55718192ae7de389bb88d423eed7977a2
Co-authored-by: Damien Riegel <damien@riegel.io>
AI-assisted: Codex
|
|
Problem:
- Nvim supports multi-line input in prompt buffer, so line(`$`) is not
always the prompt line.
Solution:
- Use `line("':")` to get the prompt line.
|
|
Problem: termdebug: not enough ways to configure breakpoints
Solution: add the termdebug_config['signs'] config setting, rework the
termdebug test cases (Dimitry Ishenko)
Allow to configure custom breakpoint signs so one can do something like
this:
```vim
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5', '>6', '>7', '>8', '>9']
let g:termdebug_config['sign'] = '>>'
```
where the first 9 breakpoints will have their own signs and the rest
will be the same (>>).
While at it, rework the test for the termdebug plugin:
- Added test for g:termdebug_config['signs'].
- Added test for g:termdebug_config['sign'].
- Moved test for g:termdebug_config['sign_decimal'] into
Test_termdebug_basic()
closes: vim/vim#17694
https://github.com/vim/vim/commit/c4bca1de0bc0f9db1b2d1dab50a6ddcd748dcfeb
Co-authored-by: Dimitry Ishenko <dimitry.ishenko@gmail.com>
|
|
Problem:
`termopen` has long been a superficial wrapper around `jobstart`, and
has no real purpose. Also, `vim.system` and `nvim_open_term` presumably
will replace all features of `jobstart` and `termopen`, so centralizing
the logic will help with that.
Solution:
- Introduce `eval/deprecated.c`, where all deprecated eval funcs will live.
- Introduce "term" flag of `jobstart`.
- Deprecate `termopen`.
|
|
closes: vim/vim#16011
https://github.com/vim/vim/commit/5e7f43b6ac2ac23d4fbfded75827a13f981d9a96
Co-authored-by: Ella Moss <ella.moss@utah.edu>
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
(#29794)
Problem: Termdebug: still get E1023 when specifying arguments and using
a prompt buffer.
Solution: Use empty() instead of len(). Add a test. Fix wrong order of
arguments to assert_equal() in Test_termdebug_basic().
(zeertzjq)
closes: vim/vim#15288
https://github.com/vim/vim/commit/aef6179bcf04918002103528651996c754c03840
|
|
quotes
closes: vim/vim#15270
https://github.com/vim/vim/commit/27f53346a303c5cf1bdfb8abca20e4fea8ec05e4
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
|
|
Fix a few minor issues:
1. filename with whitespaces issue should be fixed now, fixes: vim/vim#12357
2. ":Termdebug args" should work now, fixes: vim/vim#15254
closes: vim/vim#15261
https://github.com/vim/vim/commit/c3837a46ff5f31e9b18f8f86b6e464bed1fe20d1
Omit the DeleteCommands() change as it isn't really an improvement.
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
|
|
string concat
closes: vim/vim#14972
https://github.com/vim/vim/commit/83d0028026441d4e521d8849a5a0ef766e816cf2
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
Problem: termdebug can be further improved
Solution: refactor save/restore, update docs,
add a new save/restore test (Ubaldo Tiberi)
closes: vim/vim#15032
https://github.com/vim/vim/commit/a48637c105ce5ccf6f3296958c889d15dc3faaa4
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
|
|
Problem: termdebug plugin needs more love
Solution: start with some more Vim9 refactoring
to improve maintenance and readability
(Ubaldo Tiberi)
List of Changes and the Reasoning Behind Them:
1) Introduction of InitScriptVariables() Function:
Reasoning: This function has been introduced to ensure that when you open and
close Termdebug, and then open it again, there are no leftover script variable
values from the previous session. Leftover values could potentially cause
issues. The goal is for each Termdebug session to be independent of previous
sessions. At startup, all script variables are initialized. The only exception
is g:termdebug_loaded located at the very beginning of the script to prevent
sourcing the script twice. The variables are declared at script level and
defined in InitScriptVariables().
2) More Descriptive Variable Names:
Reasoning: The names of variables have been made more comprehensive. Almost
every Termdebug buffer now has a variable to indicate its name and another
variable to indicate its number, improving code readability and
maintainability. Due to the latest discussion around the &mousemodel option
save/restore mechanism, perhaps some other variables shall be prepended with
saved_.
3) Consistent Naming for GDB Terminal Buffers:
Reasoning: The name of the GDB terminal buffer now matches the name of the GDB
program being used, e.g., 'gdb', 'mygdb', 'arm-eabi-none-gdb', etc. This
ensures clarity and consistency in identifying buffers.
4) Other minor improvements:
Moved EchoErr() on top, added another test, some refactoring, mainly changed
several 0 and 1 to true and false
closes: vim/vim#14980
https://github.com/vim/vim/commit/ef8eab86e29091eaff0d3fb0bc3f7c90f468f6aa
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
|
|
as buffer name (#28908)
Add test so that this doesn't regress.
fixes: vim/vim#12718
closes: vim/vim#14792
https://github.com/vim/vim/commit/62ccaa60d5f7f9a13c758bd5e55b7ca6855a6de9
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
|
|
runtime(termdebug): allow multibyte characters as breakpoint signs (vim/vim#14274)
Allow multibyte characters as termdebug signs using slice() function
https://github.com/vim/vim/commit/d3c0ff5d5a9076999a8504ee4d23a2c5abaf494e
Co-authored-by: Mihai Ciuraru <mihai.ciuraru@gmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
Problem:
- The :Evaluate result window is not cleaned up when the cursor moves.
- This window is not focusable.
Solution:
Replace the old implementation from autozimu/LanguageClient-neovim with
vim.lsp.util.open_floating_preview and implement custom focusing logic.
Also remove g:termdebug_useFloatingHover option now that it's working
correctly.
|
|
runtime(termdebug): add Tbreak command
closes: vim/vim#13656
https://github.com/vim/vim/commit/323dda1484d95ee5c8a1b2205f8c495446df75ee
Co-authored-by: iam28th <artyom28th@gmail.com>
|
|
runtime(termdebug): improve the breakpoint sign label (vim/vim#13525)
// related vim/vim#12589
// that should be the last chat (I) with Bram, r.i.p
https://github.com/vim/vim/commit/2dd613f57bf17eb8ff050bcb5510eb0279f5c9ab
Co-authored-by: Shane-XB-Qian <shane.qian@foxmail.com>
|
|
Problem: It is not easy to restore saved mappings.
Solution: Make mapset() accept a dict argument. (Ernie Rael, closes vim/vim#10295)
https://github.com/vim/vim/commit/51d04d16f21e19d6eded98f9530d84089102f925
Co-authored-by: Ernie Rael <errael@raelity.com>
|
|
runtime(termdebug): handle buffer-local mappings properly
closes: vim/vim#13475
https://github.com/vim/vim/commit/7fbbd7fdc6df9dc198b3735cfbe8dbe8afd646f9
Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
|
|
runtime(termdebug): improve window handling, shorten var types
closes vim/vim#13474
https://github.com/vim/vim/commit/ca48202b6f46cfb40a0d1d80033a2f3e8cb7b813
Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
|
|
runtime: Fix more typos (vim/vim#13354)
* Fix more typos
* Fix typos in ignored runtime/ directory
https://github.com/vim/vim/commit/dbf749bd5aaef6ea2d28bce081349785d174d96a
Co-authored-by: Viktor Szépe <viktor@szepe.net>
|
|
Mostly to make it more consistent and to match Vim more where applicable.
|
|
runtime(termdebug): more termdebug fixes and improvements (vim/vim#12892)
- Fix and attempt to simplify :Frame/:Up/:Down documentation.
- Accept a count instead for :Up/:Down/+/-.
- Update the "Last Change" dates.
- Fix a missing :let (caused an error if gdb fails to start).
- Wipe the prompt buffer when ending prompt mode (if it exists and wasn't wiped
by the user first). Avoids issues with stale prompt buffers (such as E95 when
starting a new prompt mode session).
- Kill the gdb job if the prompt buffer is unloaded (similar to what's done for
a terminal buffer). Fixes not being able to start a new termdebug session if
the buffer was wiped by the user, for example.
https://github.com/vim/vim/commit/3d3a9152fa6de7038fdfd6d6de25230ed825552a
|
|
runtime(termdebug): add frame related commands (vim/vim#12511)
implementing `:Frame`, `:Up` and `:Down'
https://github.com/vim/vim/commit/2ae7ffe0bc3c3ed9fcae35ef23a2b78908580201
Use maparg() for saving K as it's since been ported (and supports Lua callbacks
and the other API fields).
Use the 3 argument variant of mapset(), as the single argument one isn't ported
yet (v8.2.4861).
Co-authored-by: Simon Sobisch <simonsobisch@web.de>
|
|
Unlike Vim's job_stop(), Nvim's jobstop() does not take a signal argument, and
always sends SIGTERM/KILL.
:Stop and Ctrl-C in prompt mode is supposed to interrupt the program like in
terminal mode, not kill GDB.
Also, maybe libuv's kill() works on Windows? If so, the logic above could be
removed, but I don't have a Windows machine available to test that.
Also "set nomodified" when ending prompt mode, like Vim (avoids E37).
|
|
runtime(termdebug): Fix various Termdebug issues (vim/vim#12875)
* Fix some Termdebug issues after vim/vim#12403
* Fix :Asm in Termdebug prompt mode
* Fix Termdebug s:DecodeMessage escaping logic
https://github.com/vim/vim/commit/a76f3221cdcfff6880213839de4d04cf0c7c60f8
Adjust disassembly message forwarding for Nvim, as its callback can receive
many lines at once.
Currently, just forward each disassembly line individually to s:CommOutput();
it's possible to do this in batch instead, but this is simpler.
I suggested moving to a GDB MI-based approach for the disassemble stuff
upstream, which should simplify the logic a lot if implemented (and possibly
allow for getting rid of the `&"disassemble ...` special-casing).
Also, correct "(gdb)" to include a trailing space; the stray GDB prompts were
being ignored by s:CommOutput() anyway, so this had caused no ill effects.
|
|
Unlike Vim, termopen() doesn't split, so you can't use the modifier like that.
Remove the fragile :wincmd shenanigans.
|
|
Vim splits lines on "\r", then trims any prefixed "\n".
But in Nvim, job output lines are split on "\n" (like readfile() in binary
mode), so trim any suffixed "\r" instead.
This gets rid of the trailing "^M" character in messages parsed from the jobs.
|
|
runtime(termdebug): re-indent lines (vim/vim#12857)
https://github.com/vim/vim/commit/19968fc4ec2c36c7d528c7326acf43e5d663ba39
Co-authored-by: Shane-XB-Qian <shane.qian@foxmail.com>
|
|
runtime(termdebug): refactor error printing (vim/vim#12856)
// vs not act like exception from vim or termdebug
https://github.com/vim/vim/commit/f6fb52b667eecb58bdd9b26bd462d5da61697cf7
Co-authored-by: Shane-XB-Qian <shane.qian@foxmail.com>
|
|
Runtime(termdebug): Add support to view local and argument variables
closes: 12403
https://github.com/vim/vim/commit/9f29621415146abc046471440515e9e34f3e57a1
Rename the existing "s:running" (#16790) to "s:gdb_running" to not clash with
the "s:running" introduced in this patch (which instead relates to whether the
debugged program is currently running in gdb).
Keep the file `:retab`bed as before.
Co-authored-by: laburnumT <flo.striker@gmail.com>
|
|
Problem: Termdebug: error with more than 99 breakpoints.
Solution: Use a different sign for breakpoint 100 and over. (closes vim/vim#12589,
closes vim/vim#12588)
https://github.com/vim/vim/commit/e7d9ca2b3bf99b0b759be8952e02c77110a354c1
Co-authored-by: skywind3000 <skywind3000@163.com>
|
|
recognized (#24145)
Problem: Termdebug on MS-Windows: some file names are not recognized.
Solution: Do not always change \t and \n. (Christian Brabandt,
closes vim/vim#12565, closes vim/vim#12560, closes vim/vim#12550)
https://github.com/vim/vim/commit/c9a4a8ab28da2b11856a3f08ccba2e91f46b85c3
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
colorscheme (#24139)
Problem: Termdebug: default highlight cleared when changing colorscheme.
Solution: Use a ColorScheme autocommand. (Christian Brabandt, closes vim/vim#12566,
closes vim/vim#12555)
https://github.com/vim/vim/commit/279de0cd1f58ea520826a3dd1c5562a71157b23b
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: famiu <famiuhaque@protonmail.com>
|
|
Update runtime files
https://github.com/vim/vim/commit/71badf9547e8f89571b9a095183671cbb333d528
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
Problem:
Job callbacks in termdebug cannot handle partial lines.
Solution:
Add a wrapper function that handles partial lines and only passes full
lines to the real callback.
Fix #22929.
|
|
Update runtime files
https://github.com/vim/vim/commit/d13166e788fcaef59ec65c20b46ca4be16625669
- Skip E1309-1311 (not ported).
- Skip `:echowindow` changes (not ported).
- Skip termdebug winbar doc changes (not fully ported).
- Port missing `g:termdebug_config.{wide,use_prompt}` changes from v8.2.5010.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
vim-patch:9.0.0341: mapset() does not restore <Nop> mapping properly
Problem: mapset() does not restore <Nop> mapping properly.
Solution: Use an empty string for <Nop>. (closes vim/vim#11022)
https://github.com/vim/vim/commit/92a3d20682d46359bb50a452b4f831659e799155
|
|
mouse (#19234)
Problem: The terminal debugger can't set a breakpoint with the mouse.
Solution: Add popup menu entries.
https://github.com/vim/vim/commit/71137fed4d77e985d49ca32c79f030512767b8ce
This ports missing popup menu code to termdebug plugin.
Despite the commit message, the code is copied from latest Vim.
WinBar code is commented out and WinBar docs is not ported.
|
|
Update runtime files
https://github.com/vim/vim/commit/e1dc76fbf333243ecfdfc3c0a81ea9984913b4f5
|
|
Update runtime files
https://github.com/vim/vim/commit/8cc5b559f70041361612b8a6a87922503b33baa6
|
|
Problem: The terminal debugger uses various global variables.
Solution: Add a dictionary to hold the terminal debugger preferences.
https://github.com/vim/vim/commit/c9a431c7638ecebb6f2cb3eabd0e1b2b5e269c1e
Omit popup menu.
|
|
Update runtime files, translations
https://github.com/vim/vim/commit/921bde88804663a7cb825d7f7e8a5d8ae6b58650
skip: translations
skip: builtin.txt (requires 8.2.4861)
|
|
Update runtime files
https://github.com/vim/vim/commit/d899e51120798d3fb5420abb1f19dddf3f014d05
- Skip vimhelp.vim stuff (syntax/help.vim, syntax.txt; v8.2.4891).
- Skip :let heredoc eval stuff (eval.txt; v8.2.4770).
- Skip uk.cp1251.po.
- Skip `*hl-CurSearch*` change (syntax.txt):
- Vim's CurSearch works differently (Nvim's uses current cursor pos).
Dunno know how applicable the redrawing comment is to Nvim...
- Might be preferred to move it under `*hl-Search*` like Vim?
|
|
Update runtime files
https://github.com/vim/vim/commit/75ab590f8504a8912ca0b8c58f6b897bb7a34f07
omit builtin.txt change to `expand()` (depends on 8.2.4726)
|
|
s:EndTermDebug should only be called when exiting if the debugger started
without error, otherwise the plugin breaks.
Vim handles this by using job_setoptions to set the on_exit callback to
s:EndTermDebug after startup succeeds. However, Nvim does not have such
functionality; instead; use s:starting to mimic this behaviour.
Also, introduce s:running to fix s:CheckGdbRunning; it did not work correctly
due to the "[Process exited X]" message keeping the job's channel alive (though
the stream is closed). This means nvim_get_chan_info cannot be used to check if
the debugger has exited, as it may still return a non-empty dict.
|