Commit Graph
10562 Commits
Author SHA1 Message Date
claude[bot]andClaude Opus 4.8 29df388109 Update changelog: Add indentwise extension, autocmd normal-mode fix
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 06:28:36 +00:00
1grzyb1andClaude Opus 4.8 44b2c7b14b VIM-2116 Update option tests
Add vim-indentwise to the expected :set/:setglobal/:setlocal output.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 11:01:48 +02:00
1grzyb1 143a27ec24 VIM-2116 Add intentwise docs 2026-06-26 11:01:48 +02:00
1grzyb1 aa54a73dd6 VIM-2116 Cleanup indentwise implementation 2026-06-26 11:01:48 +02:00
1grzyb1 ea903d65d8 VIM-2116 Indent motion for block scope boundary 2026-06-26 11:01:48 +02:00
1grzyb1 33fc7b1695 VIM-2116 Indent motion for next indents 2026-06-26 11:01:48 +02:00
1grzyb1 1055121b9f VIM-2116 Indent motion to previous equals 2026-06-26 11:01:48 +02:00
1grzyb1 8d2558db96 VIM-2116 Indent motion to previous greater 2026-06-26 11:01:48 +02:00
1grzyb1 be8934a983 VIM-2116 indentwise motion for previous lesser indent
wip
2026-06-26 11:01:48 +02:00
1grzyb1 fec6a7897d VIM-4257 Ensure that autocmd runs in normal mode
Some events require to be run in normal mode so we must make sure that we are not in insert while running them from autocmd
2026-06-26 10:50:19 +02:00
Matt Ellis 537fa7abca Restore plugin compatibility for Argument.Type 2026-06-26 08:46:30 +02:00
claude[bot]andClaude Opus 4.8 a6fefecc62 Update changelog: Fix undo in macro replay
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 06:40:27 +00:00
IdeaVim Bot 74e7ac1b43 Preparation to 2.40.0 release 2026-06-25 10:24:53 +00:00
1grzyb1 acc614d390 Fix undo in macro replay
When undo was in macro it couldn't be replayed as it was already in single command executiion. So other commands modified editor and when undo was trying execute those commands didn't yet commit and in UndoManager in Ij there is
```
    if (document.getTextLength() != fromLength) throw new UnexpectedUndoException("Unexpected document state");

```

So we have to execute each command separately during macro execution
2026-06-25 11:21:33 +02:00
claude[bot]andClaude Opus 4.8 607139cf3c Prepare What's New for the upcoming release
Update the changelog and the What's New page for the upcoming release.

CHANGES.md ([To Be Released]):
- Features: 'langmap'/'langremap' support (VIM-2283)
- Fixes: <C-O> caret at end of line (VIM-315)
- Merged PRs: #1861 (langmap), #1809 (VIM-315)

whatsnew-tbr.html: incrementally added the new langmap feature section
and the new fixes to "polish & fixes", preserving the existing content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 11:05:25 +02:00
1grzyb1 9d1ebe75ea Remove --whats-new to not confuse it as new command 2026-06-25 09:34:39 +02:00
dependabot[bot] a3d1e233d0 Bump gradle-wrapper from 9.5.0 to 9.6.0
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.5.0 to 9.6.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.5.0...v9.6.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-24 15:41:53 +00:00
IdeaVim Bot f39e5f62eb Add wtrebella to contributors list 2026-06-24 10:02:03 +00:00
Whitaker Trebella 272f1a4670 docs: edited CONTRIBUTING.md for more clarity about the configurations and gradle commands 2026-06-24 11:28:01 +02:00
Whitaker Trebella bb18ae1a0a docs: shrank config images a bit 2026-06-24 11:28:01 +02:00
Whitaker Trebella 2b975886cb docs: updated contributing doc's configs images to match latest setup 2026-06-24 11:28:01 +02:00
Whitaker Trebella 3c79bd5bb9 docs: updated CONTRIBUTING.md to list more about the project's configurations and gradle commands 2026-06-24 11:28:01 +02:00
1grzyb1 058b28afa3 Create preview of generated whats new page 2026-06-24 11:23:17 +02:00
1grzyb1 e8df8dacde Release pipeline for updating what's new
It's two-step process
1. manual run of prepare what's new that will generate html page with blogpost about what's new
2. promote current whatsnew-tbr.html to new version in release pipeline
2026-06-24 11:23:17 +02:00
1grzyb1 004b6ea368 Show blogpost with changes on new release
When user installs new version of the IdeaVim we will show dialog that will open blogpost with changes in ideaVim
2026-06-24 11:23:17 +02:00
claude[bot]andClaude Opus 4.8 4d322c78bd Fix start index handling in count() vimscript function
count(list, expr, ic, start) handled the start index incorrectly:
- Negative start indices (which Vim counts from the end of the list)
  were ignored, falling back to counting the whole list.
- An out-of-range start index silently counted the whole list instead
  of raising an error.

Vim resolves the start index via list_find(), which supports negative
indices and reports E684 (list index out of range) when the index is
invalid. Match that behavior: normalize negative indices and throw E684
for out-of-range values. The start argument is only applied when
explicitly provided, so count(list, expr) on an empty list still
returns 0 rather than erroring.

Adds regression tests for zero, negative, and out-of-range start indices.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:09:38 +02:00
claude[bot]andClaude Opus 4.8 7eb5f83fef Fix negative index handling in get() vimscript function
Vim's get(list, idx [, default]) supports negative indices, which count
from the end of the list (e.g. -1 is the last item). IdeaVim used
List.getOrElse(idx) directly, which treats any negative index as
out-of-bounds and returns the default value instead.

Normalize negative indices before lookup, matching the pattern already
used in remove(). Adds regression tests for negative and out-of-range
negative indices.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:09:38 +02:00
AndDe-gourav 413faec0c5 correct tests for x and D after C-o 2026-06-24 09:46:40 +02:00
AndDe-gourav 56e3d22f5d added tests for x and D after C-o 2026-06-24 09:46:40 +02:00
AndDe-gourav c2e4a452f0 add working also for x and D after C-o from insert 2026-06-24 09:46:40 +02:00
AndDe-gourav e337fa1d08 removed the unnecessary restore 2026-06-24 09:46:40 +02:00
AndDe-gourav cb7ee02f8e update code to only work when C-o is fired from the end 2026-06-24 09:46:40 +02:00
AndDe-gourav 4e34bc1119 add logic to move caret past to match vim behavior 2026-06-24 09:46:40 +02:00
AndDe-gourav 9d8f46366c added a test for fix vim 315 2026-06-24 09:46:40 +02:00
AndDe-gourav 42fc282678 normalizeOffset to prevent caret going out 2026-06-24 09:46:40 +02:00
Matt Ellis fea7c44339 Update documentation for 'langmap' related options 2026-06-24 08:40:52 +02:00
Matt Ellis 885bd1e97b Implement 'langmap' support
Fixes VIM-2283
Relates to VIM-2348
2026-06-24 08:40:52 +02:00
Matt Ellis 65cc010dc5 Add semantic source for each keystroke
Provides more details about when a keystroke should be mapped. This semantic information will be required to properly support langmap
2026-06-24 08:40:52 +02:00
Matt Ellis 5c431bc997 Remove DIGRAPH argument type
Since we now have argument types for register and mark, CHARACTER is now assumed to be a character or digraph
2026-06-24 08:40:52 +02:00
Matt Ellis ab423aeab4 Introduce mark and register semantic argument types
Mark and register should be mapped by langmap, from the user's input language to an ASCII mark/register name (not yet implemented)
2026-06-24 08:40:52 +02:00
Matt Ellis e45a8f76dc Remove fallback argument type handling
The digraph consumer is before the char argument consumer, so digraph keys will be processed first. If a key isn't a digraph key, it is ignored and the char argument consumer will process it; the digraph consumer doesn't need to set a fallback argument type and repost the key.
2026-06-24 08:40:52 +02:00
Matt Ellis f9249c4371 Add 'langremap' option, not yet applied
Also supports 'langnoremap' for backwards compatibility with Vim
2026-06-24 08:40:52 +02:00
Matt Ellis 65ebf53d34 Add 'langmap' option, not yet applied 2026-06-24 08:40:52 +02:00
Matt Ellis 732e3cf795 Extract escaped whitespace string tokenizer
Note that the behaviour is slightly different. This allows for a trailing backslash to be handled as an option value.
2026-06-24 08:40:52 +02:00
claude[bot]andClaude Opus 4.8 f1e424ff25 Update changelog: caret normalization and duplicate escape insertion fixes
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 06:36:42 +00:00
1grzyb1 907b437943 VIM-4253 ensure single processing escape
processing escape might be entered from multiple places at once but we don't wont to repeat it.
For example, it might be called from standard esc processing and Rider Escape lookup which results in duplicated text insertion
2026-06-23 10:11:15 +02:00
1grzyb1 5399e15528 VIM-4245 adjust caret to tamplate range
when refactor mode is set to keep we put cursor one char after the template instaed on last char in template
2026-06-23 08:49:42 +02:00
1grzyb1 0ba3bffd30 VIM-4245 Normalize caret after ij action
ij actions might leave caret on `\n` which is not allowed in normal mode and resulted in strange behavior like l moving cursor left
2026-06-23 08:49:42 +02:00
claude[bot]andClaude Opus 4.8 872f257c9b Update changelog: macro key duplication and shell command VFS refresh
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 06:41:15 +00:00
1grzyb1 75096a3b89 VIM-4255 Don't record repleced mapped keystrotes
When user had mapping for key `onUnfinishedMappingSequenceTimeout` executed this key mapping again which resulted in duplicated key in macro. To prevent that we took simillar approach as nvim to not record mapped keystrokes
2026-06-22 10:55:42 +02:00