summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-08-12 14:37:56 +0100
committerw0rp <devw0rp@gmail.com>2017-08-12 14:37:56 +0100
commitc14886e479988bb3d97bf19a344864e46b605ed1 (patch)
tree073b1879652ad91475e16efbe91a259202ac5e96
parentc52a4910bf281f5e7851db455adf8939412308c1 (diff)
downloadale-c14886e479988bb3d97bf19a344864e46b605ed1.zip
#653 - Include the buffer number in sorting of items
-rw-r--r--autoload/ale/util.vim16
-rw-r--r--test/test_loclist_sorting.vader26
2 files changed, 30 insertions, 12 deletions
diff --git a/autoload/ale/util.vim b/autoload/ale/util.vim
index 98fe53e8..8eda8a98 100644
--- a/autoload/ale/util.vim
+++ b/autoload/ale/util.vim
@@ -22,19 +22,27 @@ function! ale#util#GetFunction(string_or_ref) abort
endfunction
function! ale#util#LocItemCompare(left, right) abort
- if a:left['lnum'] < a:right['lnum']
+ if a:left.bufnr < a:right.bufnr
return -1
endif
- if a:left['lnum'] > a:right['lnum']
+ if a:left.bufnr > a:right.bufnr
return 1
endif
- if a:left['col'] < a:right['col']
+ if a:left.lnum < a:right.lnum
return -1
endif
- if a:left['col'] > a:right['col']
+ if a:left.lnum > a:right.lnum
+ return 1
+ endif
+
+ if a:left.col < a:right.col
+ return -1
+ endif
+
+ if a:left.col > a:right.col
return 1
endif
diff --git a/test/test_loclist_sorting.vader b/test/test_loclist_sorting.vader
index 6e52be6f..c095bdda 100644
--- a/test/test_loclist_sorting.vader
+++ b/test/test_loclist_sorting.vader
@@ -1,9 +1,14 @@
Before:
let g:loclist = [
- \ {'lnum': 5, 'col': 5},
- \ {'lnum': 5, 'col': 4},
- \ {'lnum': 2, 'col': 10},
- \ {'lnum': 3, 'col': 2},
+ \ {'bufnr': 3, 'lnum': 1, 'col': 1},
+ \ {'bufnr': 1, 'lnum': 5, 'col': 5},
+ \ {'bufnr': 2, 'lnum': 5, 'col': 5},
+ \ {'bufnr': 1, 'lnum': 5, 'col': 4},
+ \ {'bufnr': 1, 'lnum': 2, 'col': 10},
+ \ {'bufnr': 2, 'lnum': 1, 'col': 5},
+ \ {'bufnr': 1, 'lnum': 3, 'col': 2},
+ \ {'bufnr': 2, 'lnum': 1, 'col': 2},
+ \ {'bufnr': -1, 'lnum': 3, 'col': 2},
\]
Execute (Sort loclist with comparison function):
@@ -11,10 +16,15 @@ Execute (Sort loclist with comparison function):
Then (loclist item should be sorted):
AssertEqual [
- \ {'lnum': 2, 'col': 10},
- \ {'lnum': 3, 'col': 2},
- \ {'lnum': 5, 'col': 4},
- \ {'lnum': 5, 'col': 5},
+ \ {'bufnr': -1, 'lnum': 3, 'col': 2},
+ \ {'bufnr': 1, 'lnum': 2, 'col': 10},
+ \ {'bufnr': 1, 'lnum': 3, 'col': 2},
+ \ {'bufnr': 1, 'lnum': 5, 'col': 4},
+ \ {'bufnr': 1, 'lnum': 5, 'col': 5},
+ \ {'bufnr': 2, 'lnum': 1, 'col': 2},
+ \ {'bufnr': 2, 'lnum': 1, 'col': 5},
+ \ {'bufnr': 2, 'lnum': 5, 'col': 5},
+ \ {'bufnr': 3, 'lnum': 1, 'col': 1},
\], g:loclist
After: