Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions plugin/paredit.vim
Original file line numberDiff line numberDiff line change
Expand Up@@ -82,7 +82,7 @@ function! PareditInitBuffer()
let b:paredit_init = 1
" in case they are accidentally removed
" Also define regular expressions to identify special characters used by paredit
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
let b:any_matched_char = '(\|)\|\[\|\]\|{\|}\|\"'
let b:any_matched_pair = '()\|\[\]\|{}\|\"\"'
let b:any_opening_char = '(\|\[\|{'
Expand All@@ -107,7 +107,7 @@ function! PareditInitBuffer()
inoremap <buffer> <expr> " PareditInsertQuotes()
inoremap <buffer> <expr> <BS> PareditBackspace(0)
inoremap <buffer> <expr> <Del> PareditDel()
if &ft =~ '.*\(clojure\|scheme\|racket\).*' && g:paredit_smartjump
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*' && g:paredit_smartjump
nnoremap <buffer> <silent> ( :<C-U>call PareditSmartJumpOpening(0)<CR>
nnoremap <buffer> <silent> ) :<C-U>call PareditSmartJumpClosing(0)<CR>
vnoremap <buffer> <silent> ( <Esc>:<C-U>call PareditSmartJumpOpening(1)<CR>
Expand DownExpand Up@@ -150,7 +150,7 @@ function! PareditInitBuffer()
execute 'nmap <buffer> <silent> ' . g:paredit_leader.'<Up> d[(,S'
execute 'nmap <buffer> <silent> ' . g:paredit_leader.'<Down> d])%,S'
call RepeatableNNoRemap(g:paredit_leader . 'I', ':<C-U>call PareditRaise()')
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
inoremap <buffer> <expr> [ PareditInsertOpening('[',']')
inoremap <buffer> <silent> ] <C-R>=(pumvisible() ? "\<lt>C-Y>" : "")<CR><C-O>:let save_ve=&ve<CR><C-O>:set ve=all<CR><C-O>:<C-U>call PareditInsertClosing('[',']')<CR><C-O>:let &ve=save_ve<CR>
inoremap <buffer> <expr> { PareditInsertOpening('{','}')
Expand DownExpand Up@@ -219,7 +219,7 @@ function! PareditInitBuffer()
silent! unmap <buffer> cb
silent! unmap <buffer> ciw
silent! unmap <buffer> caw
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
silent! iunmap <buffer> [
silent! iunmap <buffer> ]
silent! iunmap <buffer> {
Expand DownExpand Up@@ -251,7 +251,7 @@ endfunction
" Include all prefix and special characters in 'iskeyword'
function! s:SetKeyword()
let old_value = &iskeyword
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
setlocal iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,\|,&
else
setlocal iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,\|,&,.,{,},[,]
Expand DownExpand Up@@ -574,7 +574,7 @@ function! s:IsBalanced()
return 0
endif

if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
let b1 = searchpair( '\[', '', '\]', 'brnmW', s:skip_sc, matchb )
let b2 = searchpair( '\[', '', '\]', 'rnmW', s:skip_sc, matchf )
if !(b1 == b2) && !(b1 == b2 - 1 && line[c-1] == '[') && !(b1 == b2 + 1 && line[c-1] == ']')
Expand DownExpand Up@@ -637,15 +637,15 @@ function! s:Unbalanced( matched )
while 1
let matched = tmp
let tmp = substitute( tmp, '(\(\s*\))', ' \1 ', 'g')
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
let tmp = substitute( tmp, '\[\(\s*\)\]', ' \1 ', 'g')
let tmp = substitute( tmp, '{\(\s*\)}', ' \1 ', 'g')
endif
let tmp = substitute( tmp, '"\(\s*\)"', ' \1 ', 'g')
if tmp == matched
" All paired chars eliminated
let tmp = substitute( tmp, ')\(\s*\)(', ' \1 ', 'g')
if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
let tmp = substitute( tmp, '\]\(\s*\)\[', ' \1 ', 'g')
let tmp = substitute( tmp, '}\(\s*\){', ' \1 ', 'g')
endif
Expand DownExpand Up@@ -810,7 +810,7 @@ function! s:ReGatherUp()
normal! ddk
endwhile
normal! Jl
elseif g:paredit_electric_return && getline('.') =~ '^\s*\(\]\|}\)' && &ft =~ '.*\(clojure\|scheme\|racket\).*'
elseif g:paredit_electric_return && getline('.') =~ '^\s*\(\]\|}\)' && &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
" Re-gather electric returns in the current line for ']' and '}'
normal! k
while getline( line('.') ) =~ '^\s*$'
Expand DownExpand Up@@ -865,7 +865,7 @@ function! PareditInsertClosing( open, close )
normal! Jl
return
endif
if len(nextline) > 0 && nextline[0] =~ '\]\|}' && &ft =~ '.*\(clojure\|scheme\|racket\).*'
if len(nextline) > 0 && nextline[0] =~ '\]\|}' && &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
" Re-gather electric returns in the line of the closing ']' or '}'
call setline( line('.'), substitute( line, '\s*$', '', 'g' ) )
normal! Jxl
Expand DownExpand Up@@ -1495,7 +1495,7 @@ function! s:FindClosing()
endif
call setpos( '.', [0, l, c, 0] )

if &ft =~ '.*\(clojure\|scheme\|racket\).*'
if &ft =~ '.*\(clojure\|scheme\|racket\|hy\).*'
call PareditFindClosing( '[', ']', 0 )
let lp = line( '.' )
let cp = col( '.' )
Expand DownExpand Up@@ -1749,5 +1749,6 @@ endif
if !exists("g:paredit_disable_scheme")
au FileType scheme call PareditInitBuffer()
au FileType racket call PareditInitBuffer()
au FileType hy call PareditInitBuffer()
endif