@@ -171,7 +171,7 @@ endfunction
171
171
172
172
" Note: A colon in the file name has side effects on Windows due to NTFS Alternate Data Streams; avoid it.
173
173
let s: bufprefix = ' gist' . (has (' unix' ) ? ' :' : ' _' )
174
- function ! s: GistList (gistls, page) abort
174
+ function ! s: GistList (gistls, page, pagelimit ) abort
175
175
if a: gistls == # ' -all'
176
176
let url = g: gist_api_url .' gists/public'
177
177
elseif get (g: , ' gist_show_privates' , 0 ) && a: gistls == # ' starred'
@@ -196,9 +196,11 @@ function! s:GistList(gistls, page) abort
196
196
exec ' silent noautocmd split' s: bufprefix .a: gistls
197
197
endif
198
198
endif
199
+
200
+ let url = url . ' ?per_page=' . a: pagelimit
199
201
if a: page > 1
200
202
let oldlines = getline (0 , line (' $' ))
201
- let url = url . ' ? page=' . a: page
203
+ let url = url . ' & page=' . a: page
202
204
endif
203
205
204
206
setlocal modifiable
@@ -527,7 +529,7 @@ function! s:GistListAction(mode) abort
527
529
return
528
530
endif
529
531
if line = ~# ' ^more\.\.\.$'
530
- call s: GistList (b: gistls , b: page+ 1 )
532
+ call s: GistList (b: gistls , b: page+ 1 , g: gist_per_page_limit )
531
533
return
532
534
endif
533
535
endfunction
@@ -767,6 +769,8 @@ function! gist#Gist(count, bang, line1, line2, ...) abort
767
769
let editpost = 0
768
770
let anonymous = get (g: , ' gist_post_anonymous' , 0 )
769
771
let openbrowser = 0
772
+ let setpagelimit = 0
773
+ let pagelimit = g: gist_per_page_limit
770
774
let listmx = ' ^\%(-l\|--list\)\s*\([^\s]\+\)\?$'
771
775
let bufnamemx = ' ^' . s: bufprefix .' \(\zs[0-9a-f]\+\ze\|\zs[0-9a-f]\+\ze[/\\].*\)$'
772
776
if strlen (g: github_user ) == 0 && anonymous == 0
@@ -794,6 +798,14 @@ function! gist#Gist(count, bang, line1, line2, ...) abort
794
798
elseif arg = ~# ' ^\(-G\|--gitclone\)$\C' && gistidbuf !=# ' ' && g: gist_api_url == # ' https://api.github.com/' && has_key (b: , ' gist' ) && has_key (b: gist , ' id' )
795
799
exe ' !' printf (
' git clone [email protected] :%s' ,
b: gist[
' id' ])
796
800
return
801
+ elseif setpagelimit == 1
802
+ let setpagelimit = 0
803
+ let pagelimit = str2nr (arg)
804
+ if pagelimit < 1 || pagelimit > 100
805
+ echohl ErrorMsg | echomsg ' Page limit should be between 1 and 100: ' .arg | echohl None
806
+ unlet args
807
+ return 0
808
+ endif
797
809
elseif arg = ~# ' ^\(-la\|--listall\)$\C'
798
810
let gistls = ' -all'
799
811
elseif arg = ~# ' ^\(-ls\|--liststar\)$\C'
@@ -874,6 +886,14 @@ function! gist#Gist(count, bang, line1, line2, ...) abort
874
886
endif
875
887
elseif arg = ~# ' ^\(-b\|--browser\)$\C'
876
888
let openbrowser = 1
889
+ elseif arg = ~# ' ^\(-n\|--per-page\)$\C'
890
+ if len (gistls) > 0
891
+ let setpagelimit = 1
892
+ else
893
+ echohl ErrorMsg | echomsg ' Page limit can be set only for list commands' .arg | echohl None
894
+ unlet args
895
+ return 0
896
+ endif
877
897
elseif arg !~# ' ^-' && len (gistnm) == 0
878
898
if gistdesc !=# ' '
879
899
let gistdesc = matchstr (arg, ' ^\s*\zs.*\ze\s*$' )
@@ -910,7 +930,7 @@ function! gist#Gist(count, bang, line1, line2, ...) abort
910
930
endif
911
931
912
932
if len (gistls) > 0
913
- call s: GistList (gistls, 1 )
933
+ call s: GistList (gistls, 1 , pagelimit )
914
934
elseif len (gistid) > 0 && editpost == 0 && deletepost == 0
915
935
call s: GistGet (gistid, clipboard )
916
936
else
0 commit comments