You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.3 KiB
86 lines
2.3 KiB
Describe lsp#utils#diff
|
|
|
|
Describe lsp#utils#diff#compute
|
|
It should return diff of one letter
|
|
let lines1 = [
|
|
\ 'foo',
|
|
\ 'bar',
|
|
\ 'baz',
|
|
\]
|
|
let lines2 = [
|
|
\ 'foo',
|
|
\ 'baR',
|
|
\ 'baz',
|
|
\]
|
|
let want = {
|
|
\ 'range': {
|
|
\ 'start': { 'line': 1, 'character': 2 },
|
|
\ 'end': { 'line': 1, 'character': 3 },
|
|
\ },
|
|
\ 'text': 'R',
|
|
\ 'rangeLength': 1
|
|
\}
|
|
let got = lsp#utils#diff#compute(lines1, lines2)
|
|
Assert Equals(got, want)
|
|
End
|
|
|
|
It should return diff of multi-lines
|
|
let lines1 = [
|
|
\ 'foo',
|
|
\ 'bar',
|
|
\ 'baz',
|
|
\]
|
|
let lines2 = [
|
|
\ 'Foo',
|
|
\ 'baR',
|
|
\ 'baz',
|
|
\]
|
|
let want = {
|
|
\ 'range': {
|
|
\ 'start': { 'line': 0, 'character': 0 },
|
|
\ 'end': { 'line': 1, 'character': 3, }
|
|
\ },
|
|
\ 'text': "Foo\nbaR",
|
|
\ "rangeLength": 7
|
|
\}
|
|
let got = lsp#utils#diff#compute(lines1, lines2)
|
|
Assert Equals(got, want)
|
|
End
|
|
|
|
It should return diff for empty list
|
|
let lines1 = []
|
|
let lines2 = [
|
|
\ 'foo',
|
|
\ 'bar',
|
|
\ 'baz',
|
|
\]
|
|
let want = {
|
|
\ 'range': {
|
|
\ 'start': { 'line': 0, 'character': 0 },
|
|
\ 'end': { 'line': 0, 'character': 0, }
|
|
\ },
|
|
\ 'text': "foo\nbar\nbaz\n",
|
|
\ "rangeLength": 0
|
|
\}
|
|
let got = lsp#utils#diff#compute(lines1, lines2)
|
|
Assert Equals(got, want)
|
|
|
|
let lines1 = [
|
|
\ 'foo',
|
|
\ 'bar',
|
|
\ 'baz',
|
|
\]
|
|
let lines2 = []
|
|
let want = {
|
|
\ 'range': {
|
|
\ 'start': { 'line': 0, 'character': 0 },
|
|
\ 'end': { 'line': 3, 'character': 0, }
|
|
\ },
|
|
\ 'text': '',
|
|
\ "rangeLength": 12
|
|
\}
|
|
let got = lsp#utils#diff#compute(lines1, lines2)
|
|
Assert Equals(got, want)
|
|
End
|
|
End
|
|
End
|
|
|