1
0
Fork 0
Commit Graph

5269 Commits

Author SHA1 Message Date
Martin Yzeiri 8ab3664992 Matchit: Add CMake Patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri 03e6101747 Matchit: Add GNU Make Patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri 9f47995c10 Matchit: Add C patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri d58f36ea1a Matchit: Enhance pattern creation
The new LanguagePatterns class lets us easily configure the patterns for
a language in a similar way to the original plugin. Most language
features can be configured by passing strings to the alternate
constructor. And the overloaded + operator makes combining patterns easy.

findMatchingPair() was refactored to work with the new class.

In addition, the concept of prefixes was removed. The cursor should jump
if it's anywhere inside or before an extended pair (excluding the
default pairs). Instead of appending a prefix to each regex, we simply
check in findMatchingPair() what the closest pair to the cursor is. The
original plugin behaves the same way.

We prefer matches containing the cursor over matches after the cursor.
If the cursor in inside multiple patterns, we pick the smaller one. And
a default pair after the cursor is preferred over any extended pairs
after the cursor.
2022-04-07 11:55:31 +03:00
Martin Yzeiri 442970a986 Matchit: Refactor parsePatternAtOffset()
The ending offset of the initial match isn't enough information for some
language features. For example, if the cursor is on "i" in the "else if"
of a Makefile, the previous implementation would jump to the "else" on a
reverse jump instead of treating "else if" as a single structure.

parsePatternAtOffset() needs to return both the match start and end for
us to correctly handle such a distinction.
2022-04-07 11:55:31 +03:00
Martin Yzeiri fcc6c8a3c5 Matchit: Simplify findClosingPair() and findOpeningPair()
findClosingPair() always moves forward and findOpeningPair() always
moves backwards. That fact lets us simplify both implementations.

Using a stack of Pairs to track the match starts and ends is unnecessary 
since we know ahead of time whether the jump needs to go to the start or
end of the target pair.

findOpeningPair() can be further simplified since it doesn't need to
check the isInOpPending flag -- the distinction between operator pending
mode and regular jumps only matters when moving forward in the buffer.
2022-04-07 11:55:31 +03:00
Martin Yzeiri 1dbd4b4391 Matchit: Use setOf for sets 2022-04-07 11:55:31 +03:00
dependabot[bot] 1943c72c1c Bump org.eclipse.jgit from 6.0.0.202111291000-r to 6.1.0.202203080745-r
Bumps org.eclipse.jgit from 6.0.0.202111291000-r to 6.1.0.202203080745-r.

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 11:39:05 +03:00
dependabot[bot] 7816da3f2d Bump org.jetbrains.changelog from 1.3.0 to 1.3.1
Bumps org.jetbrains.changelog from 1.3.0 to 1.3.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 11:38:33 +03:00
Alex Plate b25d7e358d
Update gradle plugin 2022-04-05 12:36:31 +03:00
filipp 04b62e6392 Update changelog 2022-04-05 14:20:05 +06:00
Alex Plate 4ecfb796d4
Move some classes of scroll package to vim-engine 2022-04-04 23:53:14 +03:00
Alex Plate de9fa81da3
Move objects to vim-engine 2022-04-04 23:53:14 +03:00
Alex Plate be484d381c Update changelog 2022-04-04 19:50:19 +00:00
Alex Plate 351e3b15ea
Move leftright package to vim-engine 2022-04-04 22:48:41 +03:00
Alex Plate 2b9b48ac2f
Split PutGroup into base class 2022-04-03 23:48:21 +03:00
Alex Plate 7c4ac5f561
Move toggle recording to vim-engine 2022-04-03 23:39:41 +03:00
Alex Plate def09b0be8 Update formatting 2022-04-03 00:15:00 +00:00
Alex Plate 2415b167fb Add Simon Rainer to contributors list 2022-04-02 07:54:35 +00:00
Simon Rainer dfc7aef07d Fix(VIM-2553): Substitute consecutive matches
We need to set newend after the content of match is final, otherwise we
can end up in an endless loop. This allows us to remove the
startoff != latestOff check that previously prevented this endless
loop and caused this bug.
2022-04-02 13:52:58 +06:00
Alex Plate 276ad276ec
Move few more classes to vim-engine 2022-03-30 18:44:38 +03:00
Alex Plate 83da2d304e
Move some actions to vim-engine 2022-03-30 18:36:32 +03:00
Alex Plate 6ddc40d080
Move folder actions to vim-engine 2022-03-30 13:52:27 +03:00
Alex Plate 42fb5487e5
Move gn package to vim-engine 2022-03-30 13:48:06 +03:00
Alex Plate 1ce35ac233
Move updown package to vim-engine 2022-03-30 13:20:40 +03:00
Alex Plate 2734202e12
Move visual package to vim-engine 2022-03-29 19:10:19 +03:00
Alex Plate 6a31fd2732
Move text package to vim-engine 2022-03-29 17:54:17 +03:00
Alex Plate 5d84aa6939
Move some actions to engine 2022-03-29 17:43:43 +03:00
Alex Plate 7173b7960d
Move MotionSentenceEndAction to vim-engine 2022-03-29 16:17:14 +03:00
Alex Plate bb1c30d6c8
Move paragraph action to vim-engine 2022-03-29 15:01:11 +03:00
Alex Plate d70abf6e27
Move an action to a different module 2022-03-29 14:48:43 +03:00
Alex Plate 8931fdf82a
Fix incorrect tests 2022-03-29 12:45:17 +03:00
Alex Plate 25ba72e46b
Reformat code 2022-03-29 12:25:37 +03:00
Alex Plate ebd71d41dc
Update TC constant 2022-03-29 12:23:08 +03:00
Alex Plate 4b49bb4737
Fix ]] and ][ commands
Discussion: 486
2022-03-29 12:12:48 +03:00
Alex Plate eeac47e522
Fix neovim tests 2022-03-29 12:12:34 +03:00
Alex Plate 335267c0af
Update gradle wrapper 2022-03-29 12:12:19 +03:00
Alex Plate c4254dc6dd
Refactor history group 2022-03-29 11:08:21 +03:00
Alex Plate 12cb359967 Update changelog 2022-03-28 15:07:36 +00:00
Alex Plate d73cb274b4
Refactoring of some methods 2022-03-28 18:06:05 +03:00
Alex Plate 6cb6afe032
Fix(VIM-2590): Fix caret shape in PyCharm 2022-03-28 17:01:49 +03:00
Alex Plate 3686f0eb24
Update some usages 2022-03-28 16:10:58 +03:00
Alex Plate 6cc24fe99e
Convert VimActionHandler to using VimEditor 2022-03-28 16:10:58 +03:00
Alex Plate 3784f1957f
Some refactoring of change group 2022-03-28 16:09:25 +03:00
Alex Plate 69fd8d68af
Small refactoring of change group 2022-03-28 16:09:25 +03:00
Alex Plate 301d72c169
Refactor Direction class 2022-03-28 16:09:24 +03:00
Alex Plate ca11974b12
Move all methods to the base class 2022-03-28 16:09:24 +03:00
Alex Plate 8917dbf4bb Update formatting 2022-03-27 00:15:32 +00:00
Alex Plate 56afa6d564
Move some methods of marks group to engine 2022-03-26 01:38:03 +03:00
Alex Plate 8ecac1a8cf
Start moving mark group to vim-engine 2022-03-26 01:05:05 +03:00