1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-23 10:40:03 +08:00

Update doc for lang#sml layer (#3977)

This commit is contained in:
Wang Shidong 2020-11-23 22:26:58 +08:00 committed by GitHub
parent fa70723018
commit 93fe791dac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 221 additions and 26 deletions

View File

@ -6,6 +6,7 @@
" License: GPLv3
"=============================================================================
scriptencoding utf-8
""
" @section lang#sml, layer-lang-sml
" @parentsection layers
@ -54,11 +55,22 @@
" smlnj_path = "/usr/local/smlnj/bin/sml"
" mlton_path = "/usr/local/bin/mlton"
" repl_options = ''
" conceal = 1
" conceal_show_tick = 1
" enable_conceal = 1
" enable_conceal_show_tick = 1
" auto_create_def_use = 'always'
" <
if exists('s:sml_file_head')
finish
else
let s:sml_file_head = ['']
let s:sml_repl_options = ''
let s:sml_enable_conceal = 0
endif
function! SpaceVim#layers#lang#sml#plugins() abort
let l:plugins = []
call add(l:plugins, ['jez/vim-better-sml', { 'on_ft' : 'sml', 'build' : 'make' }])
@ -96,10 +108,10 @@ function! s:language_specified_mappings() abort
let g:_spacevim_mappings_space.l.s = {'name' : '+Send'}
call SpaceVim#mapping#space#langSPC('nmap', ['l','s', 'i'],
\ "call SpaceVim#plugins#repl#start('sml')",
\ "start REPL process", 1)
\ 'start REPL process', 1)
call SpaceVim#mapping#space#langSPC('nmap', ['l','s', 'l'],
\ "call SpaceVim#plugins#repl#send('raw', getline('.') . ';')",
\ "send line and keep code buffer focused", 1)
\ 'send line and keep code buffer focused', 1)
call SpaceVim#mapping#space#langSPC('nmap', ['l','s', 'b'],
\ 'call SpaceVim#plugins#repl#send("raw", join(getline(1, "$"), "\n") . ";")',
\ 'send buffer and keep code buffer focused', 1)
@ -108,10 +120,6 @@ function! s:language_specified_mappings() abort
\ 'send selection and keep code buffer focused', 1)
endfunction
let s:sml_file_head = ['']
let s:sml_repl_options = ''
let s:sml_enable_conceal = 0
function! SpaceVim#layers#lang#sml#set_variable(var) abort
let g:sml_smlnj_executable = get(a:var, 'smlnj_path', 'sml')
let g:sml_mlton_executable = get(a:var, 'mlton_path', 'mlton')

View File

@ -153,23 +153,24 @@ CONTENTS *SpaceVim-contents*
68. lang#scala...............................|SpaceVim-layer-lang-scala|
69. lang#scheme.............................|SpaceVim-layer-lang-scheme|
70. lang#sh.....................................|SpaceVim-layer-lang-sh|
71. lang#swig................................|SpaceVim-layer-lang-swift|
72. lang#swig.................................|SpaceVim-layer-lang-swig|
73. lang#tcl...................................|SpaceVim-layer-lang-tcl|
74. lang#toml.................................|SpaceVim-layer-lang-toml|
75. lang#typescript.....................|SpaceVim-layer-lang-typescript|
76. lang#v.......................................|SpaceVim-layer-lang-v|
77. lang#vbnet...............................|SpaceVim-layer-lang-vbnet|
78. lang#xml...................................|SpaceVim-layer-lang-xml|
79. lang#xquery.............................|SpaceVim-layer-lang-xquery|
80. language server protocol........................|SpaceVim-layer-lsp|
81. leaderf.....................................|SpaceVim-layer-leaderf|
82. operator...................................|SpaceVim-layer-operator|
83. shell.........................................|SpaceVim-layer-shell|
84. test...........................................|SpaceVim-layer-test|
85. tmux...........................................|SpaceVim-layer-tmux|
86. tools#dash...............................|SpaceVim-layer-tools-dash|
87. tools#zeal...............................|SpaceVim-layer-tools-zeal|
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|
7. Usage....................................................|SpaceVim-usage|
1. custom_plugins........................|SpaceVim-usage-custom_plugins|
2. repl............................................|SpaceVim-usage-repl|
@ -3262,6 +3263,55 @@ disabled by default, to enable this layer, add following snippet to your
<
==============================================================================
LANG#SML *SpaceVim-layer-lang-sml*
This layer is for Standard ML development. This layer provides basic syntax
highlighting and code completion , and it is disabled by default, to enable
this layer, add following snippet to your |SpaceVim-options| file.
>
[[layers]]
name = 'lang#sml'
<
You can run `:SMLCheckHealth` to check whether the environment if OK.
LAYER OPTIONS
`smlnj_path`: Set the path to the smlnj executable, by default, it is `sml`.
`mlton_path`: Set the path to the mlton executable, by default, it is `mlton`.
`repl_options`: Options used for REPL, by default, it is ''.
`auto_create_def_use`: Whether to build def-use files on save automatically.
By default, it is `mlb`. Valid values is:
>
'mlb': Auto build def-use if there's a *.mlb file
'always': Always build def-use file
'never': Never build def-use file
<
`enable_conceal`: `0`/`1`. Whether to enable concealing for SML files. `0` by
defaults. `'a` becomes `α` (or `'α`). `fn` becomes `λ.`
`enable_conceal_show_tick`: `0`/`1`. When conceal is enabled, show `'α` for
`'a` instead of `α`. Helps for alignment. `0` by default.
`sml_file_head`: Template for new sml file.
Here is an example how to use above options:
>
[[layers]]
name = "lang#sml"
smlnj_path = "/usr/local/smlnj/bin/sml"
mlton_path = "/usr/local/bin/mlton"
repl_options = ''
enable_conceal = 1
enable_conceal_show_tick = 1
auto_create_def_use = 'always'
<
==============================================================================
LANG#SWIG *SpaceVim-layer-lang-swift*

View File

@ -156,6 +156,7 @@ Vim 插件以及相关配置。而 SpaceVim 是以模块的方式来组织和管
| [lang#scheme](lang/scheme/) | 这一模块为 SpaceVim 提供了 Scheme 语言开发支持,包括语法高亮、语言服务器支持。 |
| [lang#sh](lang/sh/) | 这一模块为 SpaceVim 提供了 Shell Script 的开发支持,包括代码补全、语法检查、代码格式化等特性。 |
| [lang#slim](lang/slim/) | 这一模块为 slim 开发提供支持,主要包括了语法高亮。 |
| [lang#sml](lang/sml/) | 这一模块为 Standard ML 开发提供支持,包括交互式编程、一键运行等特性。 |
| [lang#swift](lang/swift/) | 这一模块为 SpaceVim 提供了 Swift 的开发支持,包括语法高亮、语法检查等特性。 |
| [lang#tcl](lang/tcl/) | 这一模块为 Tcl 开发提供支持,包括交互式编程、一键运行等特性。 |
| [lang#toml](lang/toml/) | 这一模块为 toml 开发提供支持,主要包括语法高亮、对齐等特性 |

View File

@ -0,0 +1,66 @@
---
title: "SpaceVim lang#sml 模块"
description: "这一模块为 Standard ML 开发提供支持,包括交互式编程、一键运行等特性。"
lang: zh
---
# [可用模块](../../) >> lang#sml
<!-- vim-markdown-toc GFM -->
- [模块简介](#模块简介)
- [启用模块](#启用模块)
- [模块选项](#模块选项)
- [快捷键](#快捷键)
- [交互式编程](#交互式编程)
- [运行当前脚本](#运行当前脚本)
<!-- vim-markdown-toc -->
## 模块简介
这一模块为在 SpaceVim 中进行 Standard ML 开发提供了支持。
## 启用模块
可通过在配置文件内加入如下配置来启用该模块:
```toml
[[layers]]
name = "lang#sml"
```
## 模块选项
- `smlnj_path`: 设置 `smlnj` 可执行文件路径, 默认是 `sml`
- `mlton_path`: 设置 `mlton` 可执行文件路径, 默认是 `mlton`
- `repl_options`: 设置交互式命令启动选项,默认为 `''`
- `auto_create_def_use`: 设置保存文件时,是否自动生成 `def-use` 文件,默认的值为 `mlb`
可以使用的值包括:
- `mlb`: 仅当有 `*.mlb` 文件时,自动生成 `def-use` 文件
- `always`: 总是生成 `def-use` 文件
- `never`: 从不生成 `def-use` 文件
- `enable_conceal`: `true`/`false`. 设置是否为SML 文件启用 concealing 特性,默认为禁用。
`'a` 显示为 `α` (或者 `'α`). `fn` 显示为 `λ.`
- `enable_conceal_show_tick`: `true`/`false`,当启用 conceal 时,将 `'a` 显示为 `'α` 而非 `α`,默认为 `false`
- `sml_file_head`: 设置新建 sml 文件时的默认文件头模板
## 快捷键
### 交互式编程
启动 `sml` 交互进程,快捷键为: `SPC l s i`
将代码传输给 REPL 进程执行:
| 快捷键 | 功能描述 |
| ----------- | ----------------------- |
| `SPC l s b` | 发送整个文件内容至 REPL |
| `SPC l s l` | 发送当前行内容至 REPL |
| `SPC l s s` | 发送已选中的内容至 REPL |
### 运行当前脚本
在编辑 sml 文件时,可通过快捷键 `SPC l r` 快速异步运行当前文件,运行结果会展示在一个独立的执行窗口内。

View File

@ -84,7 +84,7 @@ Some layers are enabled by default. The following example shows how to disable `
| [edit](edit/) | Improve code edit expr in SpaceVim, provide more text opjects. |
| [floobits](floobits/) | This layer adds support for the peer programming tool floobits to SpaceVim. |
| [foldsearch](foldsearch/) | This layer provides functions that fold away lines that don't match a specific search pattern. |
| [format](format/) | Code formatting support for SpaceVim |
| [format](format/) | Code formatting layer for SpaceVim, includes a variety of formatters for many filetypes |
| [fzf](fzf/) | This layers provide a heavily customized fzf centric work-flow |
| [git](git/) | This layers adds extensive support for git |
| [github](github/) | This layer provides GitHub integration for SpaceVim |
@ -166,6 +166,7 @@ Some layers are enabled by default. The following example shows how to disable `
| [lang#scheme](lang/scheme/) | This layer adds Scheme language support to SpaceVim |
| [lang#sh](lang/sh/) | Shell script development layer, provides autocompletion, syntax checking, code format for bash and zsh script. |
| [lang#slim](lang/slim/) | This layer is for slim development, includes syntax highlighting for slim file. |
| [lang#sml](lang/sml/) | This layer is for Standard ML development, provide syntax highlighting and repl support for sml file. |
| [lang#swift](lang/swift/) | swift language support for SpaceVim, includes code completion, syntax highlighting |
| [lang#tcl](lang/tcl/) | This layer is for Tcl development, provide syntax checking, code runner and repl support for tcl file. |
| [lang#toml](lang/toml/) | This layer is for toml development, provide syntax checking, indent etc. |

69
docs/layers/lang/sml.md Normal file
View File

@ -0,0 +1,69 @@
---
title: "SpaceVim lang#sml layer"
description: "This layer is for Standard ML development, provide syntax highlighting and repl support for sml file."
---
# [Available Layers](../../) >> lang#sml
<!-- vim-markdown-toc GFM -->
- [Description](#description)
- [Install](#install)
- [Layer options](#layer-options)
- [Key bindings](#key-bindings)
- [Running current script](#running-current-script)
- [Inferior REPL process](#inferior-repl-process)
<!-- vim-markdown-toc -->
## Description
This layer is for Standard ML development.
## Install
To use this configuration layer, update custom configuration file with:
```toml
[[layers]]
name = "lang#sml"
```
## Layer options
- `smlnj_path`: Set the path to the smlnj executable, by default, it is `sml`.
- `mlton_path`: Set the path to the mlton executable, by default, it is `mlton`.
- `repl_options`: Options used for REPL, by default, it is ''.
- `auto_create_def_use`: Whether to build def-use files on save automatically.
By default, it is `mlb`. Valid values is:
- `mlb`: Auto build def-use if there's a `*.mlb` file
- `always`: Always build def-use file
- `never`: Never build def-use file
- `enable_conceal`: `true`/`false`. Whether to enable concealing for SML files. `false` by defaults.
`'a` becomes `α` (or `'α`). `fn` becomes `λ.`
- `enable_conceal_show_tick`: `true`/`false`. When conceal is enabled, show `'α` for `'a` instead of `α`.
Helps for alignment. `false` by default.
- `sml_file_head`: Template for new sml file.
## Key bindings
### Running current script
The key binding for running current sml file is `SPC l r`.
It will run current file without loss focus,
and the result will be shown in a runner buffer.
### Inferior REPL process
Start a `sml` inferior REPL process with `SPC l s i`.
Send code to inferior process commands:
| Key Bindings | Descriptions |
| ------------ | ------------------------------------------------ |
| `SPC l s b` | send buffer and keep code buffer focused |
| `SPC l s l` | send line and keep code buffer focused |
| `SPC l s s` | send selection text and keep code buffer focused |