summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_meta/diff.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2025-07-12 18:36:07 -0400
committerGitHub <noreply@github.com>2025-07-12 22:36:07 +0000
commitf3a54e7ccfcfa2752eccd7585e2c4b94a4c8c433 (patch)
tree8b3c80476217f30d1356bae3d0d017669c14252f /runtime/lua/vim/_meta/diff.lua
parent430be9d01df443b096ab2c22f943589fb9086025 (diff)
refactor(lua): rename vim.diff => vim.text.diff #34864
Problem: `vim.diff()` was introduced before we had the `vim.text` module, where it obviously belongs. Solution: Move it.
Diffstat (limited to 'runtime/lua/vim/_meta/diff.lua')
-rw-r--r--runtime/lua/vim/_meta/diff.lua71
1 files changed, 0 insertions, 71 deletions
diff --git a/runtime/lua/vim/_meta/diff.lua b/runtime/lua/vim/_meta/diff.lua
deleted file mode 100644
index 4803ed4775..0000000000
--- a/runtime/lua/vim/_meta/diff.lua
+++ /dev/null
@@ -1,71 +0,0 @@
----@meta
-
---- Optional parameters:
---- @class vim.diff.Opts
---- @inlinedoc
----
---- Invoked for each hunk in the diff. Return a negative number
---- to cancel the callback for any remaining hunks.
---- Arguments:
---- - `start_a` (`integer`): Start line of hunk in {a}.
---- - `count_a` (`integer`): Hunk size in {a}.
---- - `start_b` (`integer`): Start line of hunk in {b}.
---- - `count_b` (`integer`): Hunk size in {b}.
---- @field on_hunk? fun(start_a: integer, count_a: integer, start_b: integer, count_b: integer): integer?
----
---- Form of the returned diff:
---- - `unified`: String in unified format.
---- - `indices`: Array of hunk locations.
---- Note: This option is ignored if `on_hunk` is used.
---- (default: `'unified'`)
---- @field result_type? 'unified'|'indices'
----
---- Run linematch on the resulting hunks from xdiff. When integer, only hunks
---- upto this size in lines are run through linematch.
---- Requires `result_type = indices`, ignored otherwise.
---- @field linematch? boolean|integer
----
---- Diff algorithm to use. Values:
---- - `myers`: the default algorithm
---- - `minimal`: spend extra time to generate the smallest possible diff
---- - `patience`: patience diff algorithm
---- - `histogram`: histogram diff algorithm
---- (default: `'myers'`)
---- @field algorithm? 'myers'|'minimal'|'patience'|'histogram'
---- @field ctxlen? integer Context length
---- @field interhunkctxlen? integer Inter hunk context length
---- @field ignore_whitespace? boolean Ignore whitespace
---- @field ignore_whitespace_change? boolean Ignore whitespace change
---- @field ignore_whitespace_change_at_eol? boolean Ignore whitespace change at end-of-line.
---- @field ignore_cr_at_eol? boolean Ignore carriage return at end-of-line
---- @field ignore_blank_lines? boolean Ignore blank lines
---- @field indent_heuristic? boolean Use the indent heuristic for the internal diff library.
-
--- luacheck: no unused args
-
---- Run diff on strings {a} and {b}. Any indices returned by this function,
---- either directly or via callback arguments, are 1-based.
----
---- Examples:
----
---- ```lua
---- vim.diff('a\n', 'b\nc\n')
---- -- =>
---- -- @@ -1 +1,2 @@
---- -- -a
---- -- +b
---- -- +c
----
---- vim.diff('a\n', 'b\nc\n', {result_type = 'indices'})
---- -- =>
---- -- {
---- -- {1, 1, 1, 2}
---- -- }
---- ```
----
----@param a string First string to compare
----@param b string Second string to compare
----@param opts? vim.diff.Opts
----@return string|integer[][]?
---- See {opts.result_type}. `nil` if {opts.on_hunk} is given.
-function vim.diff(a, b, opts) end