1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-09 10:00:04 +08:00

Update Common Lisp support (#3107)

This commit is contained in:
Wang Shidong 2020-12-20 20:13:28 +08:00 committed by GitHub
parent d626ce2df7
commit 6e6a592bd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 209 additions and 237 deletions

View File

@ -6,100 +6,42 @@
" License: GPLv3
"=============================================================================
""
" @section lang#lisp, layer-lang-lisp
" @parentsection layers
" This layer is for Common Lisp development, disabled by default, to enable this
" layer, add following snippet to your SpaceVim configuration file.
" >
" [[layers]]
" name = 'lang#lisp'
" <
"
" @subsection Key bindings
" >
" Mode Key Function
" ---------------------------------------------
" normal SPC l r run current file
" <
"
" This layer also provides REPL support for lisp, the key bindings are:
" >
" Key Function
" ---------------------------------------------
" SPC l s i Start a inferior REPL process
" SPC l s b send whole buffer
" SPC l s l send current line
" SPC l s s send selection text
" <
"
function! SpaceVim#layers#lang#lisp#plugins() abort
let plugins = []
call add(plugins,['l04m33/vlime', {'on_ft' : 'lisp', 'rtp': 'vim'}])
call add(plugins,['wsdjeg/vim-lisp', {'merged' : 0}])
return plugins
endfunction
function! SpaceVim#layers#lang#lisp#config() abort
let g:vlime_default_mappings = {
\ 'lisp': [
\ ['i', '<Space>', '<Space><c-r>=VlimeKey("space")<cr>'],
\ ['i', '<cr>', '<cr><c-r>=VlimeKey("cr")<cr>'],
\ ['i', '<tab>', '<c-r>=VlimeKey("tab")<cr>'],
\
\ ['n', '<LocalLeader>wp', ':call VlimeCloseWindow("preview")<cr>'],
\ ['n', '<LocalLeader>wr', ':call VlimeCloseWindow("arglist")<cr>'],
\ ['n', '<LocalLeader>wn', ':call VlimeCloseWindow("notes")<cr>'],
\ ['n', '<LocalLeader>wR', ':call VlimeCloseWindow("repl")<cr>'],
\ ['n', '<LocalLeader>wA', ':call VlimeCloseWindow("")<cr>'],
\ ['n', '<LocalLeader>wl', ':call VlimeCloseWindow()<cr>'],
\
\ ['n', '<LocalLeader>i', ':call VlimeInteractionMode()<cr>'],
\ ['n', '<LocalLeader>l', ':call VlimeLoadFile(expand("%:p"))<cr>'],
\ ['n', '<LocalLeader>a', ':call VlimeDisassembleForm(vlime#ui#CurExpr())<cr>'],
\ ['n', '<LocalLeader>p', ':call VlimeSetPackage()<cr>'],
\ ['n', '<LocalLeader>b', ':call VlimeSetBreakpoint()<cr>'],
\ ['n', '<LocalLeader>t', ':call VlimeListThreads()<cr>'],
\ ],
\
\ 'sldb': [
\ ['n', '<cr>', ':call vlime#ui#sldb#ChooseCurRestart()<cr>'],
\ ['n', 'd', ':call vlime#ui#sldb#ShowFrameDetails()<cr>'],
\ ['n', 'S', ':<c-u>call vlime#ui#sldb#OpenFrameSource()<cr>'],
\ ['n', 'T', ':call vlime#ui#sldb#OpenFrameSource("tabedit")<cr>'],
\ ['n', 'r', ':call vlime#ui#sldb#RestartCurFrame()<cr>'],
\ ['n', 's', ':call vlime#ui#sldb#StepCurOrLastFrame("step")<cr>'],
\ ['n', 'x', ':call vlime#ui#sldb#StepCurOrLastFrame("next")<cr>'],
\ ['n', 'o', ':call vlime#ui#sldb#StepCurOrLastFrame("out")<cr>'],
\ ['n', 'c', ':call b:vlime_conn.SLDBContinue()<cr>'],
\ ['n', 'a', ':call b:vlime_conn.SLDBAbort()<cr>'],
\ ['n', 'C', ':call vlime#ui#sldb#InspectCurCondition()<cr>'],
\ ['n', 'i', ':call vlime#ui#sldb#InspectInCurFrame()<cr>'],
\ ['n', 'e', ':call vlime#ui#sldb#EvalStringInCurFrame()<cr>'],
\ ['n', 'D', ':call vlime#ui#sldb#DisassembleCurFrame()<cr>'],
\ ['n', 'R', ':call vlime#ui#sldb#ReturnFromCurFrame()<cr>'],
\ ],
\
\ 'repl': [
\ ['n', '<c-c>', ':call b:vlime_conn.Interrupt({"name": "REPL-THREAD", "package": "KEYWORD"})<cr>'],
\ ['n', '<LocalLeader>I', ':call vlime#ui#repl#InspectCurREPLPresentation()<cr>'],
\ ['n', '<LocalLeader>y', ':call vlime#ui#repl#YankCurREPLPresentation()<cr>'],
\ ['n', '<LocalLeader>C', ':call vlime#ui#repl#ClearREPLBuffer()<cr>'],
\ ],
\
\ 'inspector': [
\ ['n', ['<cr>', '<Space>'], ':call vlime#ui#inspector#InspectorSelect()<cr>'],
\ ['n', ['<c-n>', '<tab>'], ':call vlime#ui#inspector#NextField(v:true)<cr>'],
\ ['n', '<c-p>', ':call vlime#ui#inspector#NextField(v:false)<cr>'],
\ ['n', 'p', ':call vlime#ui#inspector#InspectorPop()<cr>'],
\ ['n', 'R', ':call b:vlime_conn.InspectorReinspect({c, r -> c.ui.OnInspect(c, r, v:null, v:null)})<cr>'],
\ ],
\
\ 'xref': [
\ ['n', '<cr>', ':<c-u>call vlime#ui#xref#OpenCurXref()<cr>'],
\ ['n', 't', ':<c-u>call vlime#ui#xref#OpenCurXref(v:true, "tabedit")<cr>'],
\ ['n', 's', ':<c-u>call vlime#ui#xref#OpenCurXref(v:true, "split")<cr>'],
\ ['n', 'S', ':<c-u>call vlime#ui#xref#OpenCurXref(v:true, "vsplit")<cr>'],
\ ],
\
\ 'notes': [
\ ['n', '<cr>', ':<c-u>call vlime#ui#compiler_notes#OpenCurNote()<cr>'],
\ ['n', 't', ':<c-u>call vlime#ui#compiler_notes#OpenCurNote("tabedit")<cr>'],
\ ['n', 's', ':<c-u>call vlime#ui#compiler_notes#OpenCurNote("split")<cr>'],
\ ['n', 'S', ':<c-u>call vlime#ui#compiler_notes#OpenCurNote("vsplit")<cr>'],
\ ],
\
\ 'threads': [
\ ['n', '<c-c>', ':call vlime#ui#threads#InterruptCurThread()<cr>'],
\ ['n', 'K', ':call vlime#ui#threads#KillCurThread()<cr>'],
\ ['n', 'D', ':call vlime#ui#threads#DebugCurThread()<cr>'],
\ ['n', 'r', ':call vlime#ui#threads#Refresh()<cr>'],
\ ],
\
\ 'server': [
\ ['n', '<LocalLeader>c', ':call VlimeConnectToCurServer()<cr>'],
\ ['n', '<LocalLeader>s', ':call VlimeStopCurServer()<cr>'],
\ ],
\
\ 'input': [
\ ['n', '<c-p>', ':call vlime#ui#input#NextHistoryItem("backward")<cr>'],
\ ['n', '<c-n>', ':call vlime#ui#input#NextHistoryItem("forward")<cr>'],
\ ],
\ }
call SpaceVim#mapping#space#regesit_lang_mappings('lisp', function('s:lisp'))
augroup LocalVlimeKeys
autocmd!

View File

@ -131,46 +131,47 @@ CONTENTS *SpaceVim-contents*
46. lang#json.................................|SpaceVim-layer-lang-json|
47. lang#julia...............................|SpaceVim-layer-lang-julia|
48. lang#kotlin.............................|SpaceVim-layer-lang-kotlin|
49. lang#livescript.....................|SpaceVim-layer-lang-livescript|
50. lang#lua...................................|SpaceVim-layer-lang-lua|
51. lang#moonscript.....................|SpaceVim-layer-lang-moonscript|
52. lang#nim...................................|SpaceVim-layer-lang-nim|
53. lang#nix...................................|SpaceVim-layer-lang-nix|
54. lang#ocaml...............................|SpaceVim-layer-lang-ocaml|
55. lang#pact.................................|SpaceVim-layer-lang-pact|
56. lang#php...................................|SpaceVim-layer-lang-php|
57. lang#pony.................................|SpaceVim-layer-lang-pony|
58. lang#processing.....................|SpaceVim-layer-lang-processing|
59. lang#prolog.............................|SpaceVim-layer-lang-prolog|
60. lang#puppet.............................|SpaceVim-layer-lang-puppet|
61. lang#python.............................|SpaceVim-layer-lang-python|
62. lang#racket.............................|SpaceVim-layer-lang-racket|
63. lang#racket................................|SpaceVim-layer-lang-red|
64. lang#ring....................................|SpaceVim-layer-lang-r|
65. lang#ring.................................|SpaceVim-layer-lang-ring|
66. lang#ruby.................................|SpaceVim-layer-lang-ruby|
67. lang#rust.................................|SpaceVim-layer-lang-rust|
68. lang#scala...............................|SpaceVim-layer-lang-scala|
69. lang#scheme.............................|SpaceVim-layer-lang-scheme|
70. lang#sh.....................................|SpaceVim-layer-lang-sh|
71. lang#sml...................................|SpaceVim-layer-lang-sml|
72. lang#swig................................|SpaceVim-layer-lang-swift|
73. lang#swig.................................|SpaceVim-layer-lang-swig|
74. lang#tcl...................................|SpaceVim-layer-lang-tcl|
75. lang#toml.................................|SpaceVim-layer-lang-toml|
76. lang#typescript.....................|SpaceVim-layer-lang-typescript|
77. lang#v.......................................|SpaceVim-layer-lang-v|
78. lang#vbnet...............................|SpaceVim-layer-lang-vbnet|
79. lang#xml...................................|SpaceVim-layer-lang-xml|
80. lang#xquery.............................|SpaceVim-layer-lang-xquery|
81. language server protocol........................|SpaceVim-layer-lsp|
82. leaderf.....................................|SpaceVim-layer-leaderf|
83. operator...................................|SpaceVim-layer-operator|
84. shell.........................................|SpaceVim-layer-shell|
85. test...........................................|SpaceVim-layer-test|
86. tmux...........................................|SpaceVim-layer-tmux|
87. tools#dash...............................|SpaceVim-layer-tools-dash|
88. tools#zeal...............................|SpaceVim-layer-tools-zeal|
49. lang#lisp.................................|SpaceVim-layer-lang-lisp|
50. lang#livescript.....................|SpaceVim-layer-lang-livescript|
51. lang#lua...................................|SpaceVim-layer-lang-lua|
52. lang#moonscript.....................|SpaceVim-layer-lang-moonscript|
53. lang#nim...................................|SpaceVim-layer-lang-nim|
54. lang#nix...................................|SpaceVim-layer-lang-nix|
55. lang#ocaml...............................|SpaceVim-layer-lang-ocaml|
56. lang#pact.................................|SpaceVim-layer-lang-pact|
57. lang#php...................................|SpaceVim-layer-lang-php|
58. lang#pony.................................|SpaceVim-layer-lang-pony|
59. lang#processing.....................|SpaceVim-layer-lang-processing|
60. lang#prolog.............................|SpaceVim-layer-lang-prolog|
61. lang#puppet.............................|SpaceVim-layer-lang-puppet|
62. lang#python.............................|SpaceVim-layer-lang-python|
63. lang#racket.............................|SpaceVim-layer-lang-racket|
64. lang#racket................................|SpaceVim-layer-lang-red|
65. lang#ring....................................|SpaceVim-layer-lang-r|
66. lang#ring.................................|SpaceVim-layer-lang-ring|
67. lang#ruby.................................|SpaceVim-layer-lang-ruby|
68. lang#rust.................................|SpaceVim-layer-lang-rust|
69. lang#scala...............................|SpaceVim-layer-lang-scala|
70. lang#scheme.............................|SpaceVim-layer-lang-scheme|
71. lang#sh.....................................|SpaceVim-layer-lang-sh|
72. lang#sml...................................|SpaceVim-layer-lang-sml|
73. lang#swig................................|SpaceVim-layer-lang-swift|
74. lang#swig.................................|SpaceVim-layer-lang-swig|
75. lang#tcl...................................|SpaceVim-layer-lang-tcl|
76. lang#toml.................................|SpaceVim-layer-lang-toml|
77. lang#typescript.....................|SpaceVim-layer-lang-typescript|
78. lang#v.......................................|SpaceVim-layer-lang-v|
79. lang#vbnet...............................|SpaceVim-layer-lang-vbnet|
80. lang#xml...................................|SpaceVim-layer-lang-xml|
81. lang#xquery.............................|SpaceVim-layer-lang-xquery|
82. language server protocol........................|SpaceVim-layer-lsp|
83. leaderf.....................................|SpaceVim-layer-leaderf|
84. operator...................................|SpaceVim-layer-operator|
85. shell.........................................|SpaceVim-layer-shell|
86. test...........................................|SpaceVim-layer-test|
87. tmux...........................................|SpaceVim-layer-tmux|
88. tools#dash...............................|SpaceVim-layer-tools-dash|
89. tools#zeal...............................|SpaceVim-layer-tools-zeal|
7. Usage....................................................|SpaceVim-usage|
1. custom_plugins........................|SpaceVim-usage-custom_plugins|
2. repl............................................|SpaceVim-usage-repl|
@ -2601,6 +2602,35 @@ This layer also provides REPL support for kotlin, the key bindings are:
<
==============================================================================
LANG#LISP *SpaceVim-layer-lang-lisp*
This layer is for Common Lisp development, disabled by default, to enable this
layer, add following snippet to your SpaceVim configuration file.
>
[[layers]]
name = 'lang#lisp'
<
KEY BINDINGS
>
Mode Key Function
---------------------------------------------
normal SPC l r run current file
<
This layer also provides REPL support for lisp, the key bindings are:
>
Key Function
---------------------------------------------
SPC l s i Start a inferior REPL process
SPC l s b send whole buffer
SPC l s l send current line
SPC l s s send selection text
<
==============================================================================
LANG#LIVESCRIPT *SpaceVim-layer-lang-livescript*

View File

@ -1,6 +1,6 @@
---
title: "SpaceVim lang#lisp 模块"
description: "这一模块为 Lisp 开发提供支持,包括代码补全、语法检查、代码格式化等特性。"
description: "这一模块为 Common Lisp 开发提供支持,包括代码补全、语法检查、代码格式化等特性。"
---
# [可用模块](../../) >> lang#lisp
@ -16,7 +16,7 @@ description: "这一模块为 Lisp 开发提供支持,包括代码补全、语
## 模块简介
这一模块为 SpaceVim 提供了 Lisp 开发支持,包括代码补全、语法检查以及代码格式化等特性。
这一模块为 SpaceVim 提供了 Common Lisp 开发支持,包括代码补全、语法检查以及代码格式化等特性。
## 启用模块

View File

@ -1,6 +1,6 @@
---
title: "SpaceVim lang#lisp layer"
description: "This layer is for Lisp development, provide autocompletion, syntax checking, code format for Lisp file."
description: "This layer is for Common Lisp development, provide autocompletion, syntax checking, code format for Common Lisp file."
---
# [Available Layers](../../) >> lang#lisp
@ -16,7 +16,7 @@ description: "This layer is for Lisp development, provide autocompletion, syntax
## Description
This layer is for Lisp development.
This layer is for Common Lisp development.
## Install