Mercurial > vim
view runtime/macros/less.vim @ 32996:dd8da8f1c2bc v9.0.1790
patch 9.0.1790: Redundant LSP Content-Type header
Commit: https://github.com/vim/vim/commit/8fbd9449e71f2ad93e594be575209a7424eb093e
Author: Magnus Gro? <magnus@mggross.com>
Date: Sun Aug 27 00:49:51 2023 +0200
patch 9.0.1790: Redundant LSP Content-Type header
Problem: The Content-Type header is an optional header that some LSP
servers struggle with and may crash when encountering it.
Solution: Drop the Content-Type header from all messages, because we use
the default value anyway.
Because pretty much all popular LSP clients (e.g. coc.nvim, VSCode) do
not send the Content-Type header, the LSP server ecosystem has developed
such that some LSP servers may even crash when encountering it.
To improve compatibility with these misbehaving LSP servers, we drop
this header as well.
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Magnus Gro? <magnus@mggross.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 11:15:03 +0200 |
parents | 4027cefc2aab |
children | 9ddc74d06433 |
line wrap: on
line source
" Vim script to work like "less" " Maintainer: The Vim Project <https://github.com/vim/vim> " Last Change: 2023 Aug 10 " Former Maintainer: Bram Moolenaar <Bram@vim.org> " Avoid loading this file twice, allow the user to define his own script. if exists("loaded_less") finish endif let loaded_less = 1 " If not reading from stdin, skip files that can't be read. " Exit if there is no file at all. if argc() > 0 let s:i = 0 while 1 if filereadable(argv(s:i)) if s:i != 0 sleep 3 endif break endif if isdirectory(argv(s:i)) echomsg "Skipping directory " . argv(s:i) elseif getftime(argv(s:i)) < 0 echomsg "Skipping non-existing file " . argv(s:i) else echomsg "Skipping unreadable file " . argv(s:i) endif echo "\n" let s:i = s:i + 1 if s:i == argc() quit endif next endwhile endif " we don't want 'compatible' here if &cp set nocp endif " enable syntax highlighting if not done already if !get(g:, 'syntax_on', 0) syntax enable endif set so=0 set hlsearch set incsearch nohlsearch " Don't remember file names and positions set viminfo= set nows " Inhibit screen updates while searching let s:lz = &lz set lz " Allow the user to define a function, which can set options specifically for " this script. if exists('*LessInitFunc') call LessInitFunc() endif " Used after each command: put cursor at end and display position if &wrap noremap <SID>L L0:redraw<CR>:file<CR> au VimEnter * normal! L0 else noremap <SID>L Lg0:redraw<CR>:file<CR> au VimEnter * normal! Lg0 endif " When reading from stdin don't consider the file modified. au VimEnter * set nomod " Can't modify the text or write the file. set nomodifiable readonly " Give help noremap h :call <SID>Help()<CR> map H h fun! s:Help() echo "<Space> One page forward b One page backward" echo "d Half a page forward u Half a page backward" echo "<Enter> One line forward k One line backward" echo "G End of file g Start of file" echo "N% percentage in file" echo "\n" echo "/pattern Search for pattern ?pattern Search backward for pattern" echo "n next pattern match N Previous pattern match" if &foldmethod != "manual" echo "\n" echo "zR open all folds zm increase fold level" endif echo "\n" echo ":n<Enter> Next file :p<Enter> Previous file" echo "\n" echo "q Quit v Edit file" let i = input("Hit Enter to continue") endfun " Scroll one page forward noremap <script> <Space> :call <SID>NextPage()<CR><SID>L map <C-V> <Space> map f <Space> map <C-F> <Space> map <PageDown> <Space> map <kPageDown> <Space> map <S-Down> <Space> " If 'foldmethod' was changed keep the "z" commands, e.g. "zR" to open all " folds. if &foldmethod == "manual" map z <Space> endif map <Esc><Space> <Space> fun! s:NextPage() if line(".") == line("$") if argidx() + 1 >= argc() " Don't quit at the end of the last file return endif next 1 else exe "normal! \<C-F>" endif endfun " Re-read file and page forward "tail -f" map F :e<CR>G<SID>L:sleep 1<CR>F " Scroll half a page forward noremap <script> d <C-D><SID>L map <C-D> d " Scroll one line forward noremap <script> <CR> <C-E><SID>L map <C-N> <CR> map e <CR> map <C-E> <CR> map j <CR> map <C-J> <CR> map <Down> <CR> " Scroll one page backward noremap <script> b <C-B><SID>L map <C-B> b map <PageUp> b map <kPageUp> b map <S-Up> b map w b map <Esc>v b " Scroll half a page backward noremap <script> u <C-U><SID>L noremap <script> <C-U> <C-U><SID>L " Scroll one line backward noremap <script> k <C-Y><SID>L map y k map <C-Y> k map <C-P> k map <C-K> k map <Up> k " Redraw noremap <script> r <C-L><SID>L noremap <script> <C-R> <C-L><SID>L noremap <script> R <C-L><SID>L " Start of file noremap <script> g gg<SID>L map < g map <Esc>< g map <Home> g map <kHome> g " End of file noremap <script> G G<SID>L map > G map <Esc>> G map <End> G map <kEnd> G " Go to percentage noremap <script> % %<SID>L map p % " Search noremap <script> / H$:call <SID>Forward()<CR>/ if &wrap noremap <script> ? H0:call <SID>Backward()<CR>? else noremap <script> ? Hg0:call <SID>Backward()<CR>? endif fun! s:Forward() " Searching forward noremap <script> n H$nzt<SID>L if &wrap noremap <script> N H0Nzt<SID>L else noremap <script> N Hg0Nzt<SID>L endif cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L endfun fun! s:Backward() " Searching backward if &wrap noremap <script> n H0nzt<SID>L else noremap <script> n Hg0nzt<SID>L endif noremap <script> N H$Nzt<SID>L cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L endfun call s:Forward() cunmap <CR> " Quitting noremap q :q<CR> " Switch to editing (switch off less mode) map v :silent call <SID>End()<CR> fun! s:End() set ma if exists('s:lz') let &lz = s:lz endif unmap h unmap H unmap <Space> unmap <C-V> unmap f unmap <C-F> unmap z unmap <Esc><Space> unmap F unmap d unmap <C-D> unmap <CR> unmap <C-N> unmap e unmap <C-E> unmap j unmap <C-J> unmap b unmap <C-B> unmap w unmap <Esc>v unmap u unmap <C-U> unmap k unmap y unmap <C-Y> unmap <C-P> unmap <C-K> unmap r unmap <C-R> unmap R unmap g unmap < unmap <Esc>< unmap G unmap > unmap <Esc>> unmap % unmap p unmap n unmap N unmap q unmap v unmap / unmap ? unmap <Up> unmap <Down> unmap <PageDown> unmap <kPageDown> unmap <PageUp> unmap <kPageUp> unmap <S-Down> unmap <S-Up> unmap <Home> unmap <kHome> unmap <End> unmap <kEnd> endfun " vim: sw=2