Skip to content

Commit

Permalink
doc: update example configs and CHANGELOG
Browse files Browse the repository at this point in the history
  • Loading branch information
wlh320 committed Jun 2, 2024
1 parent 4ae817a commit bd728ee
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 75 deletions.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
# v0.3.0

## Fix

- 解决某些编辑器无法连续输入的问题:
- 为 Zed 和 Helix 增加配置项 `long_filter_text`
- 为 Zed 增加配置项 `show_filter_text_in_label`
- 在查找补全串开头的时候应该从右到左搜索 (Thanks to TwIStOy in #21 )
- 解决使用 dashmap 的一个死锁 (#16)

## Feat

- 增加 Dockerfile 方便通过 TCP 使用 (Thanks to Zwlin98 in #17)

## Doc

- 完善 macOS 下编译的文档 (Thanks to evpeople in #25)

## Chore

- 增加 Release 的编译脚本, 通过 `cargo-zigbuild``cargo-xwin` 交叉编译其他平台


# v0.2.4

## Fix
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ https://user-images.githubusercontent.com/14821247/213079440-f0ab2ddd-5e44-4e41-
1. 下载 Release 或自己从源码编译
2. 将编译好的二进制文件放在喜欢的目录下
3. 配置 LSP 客戶端, 例如:
- [neovim + nvim-cmp](doc/nvim.md)
- [vim + coc.nvim](doc/vim.md)
- [vscode](doc/vscode.md)
- [helix](doc/helix.md)
- [zed](doc/zed.md)
- [Neovim + nvim-cmp](doc/nvim.md)
- [Vim + coc.nvim](doc/vim.md)
- [Vscode](doc/vscode.md)
- [Helix](doc/helix.md)
- [Zed](doc/zed.md)
4. 像配置其他 Rime 输入法一样在 rime-ls 的用户目录进行配置
5. 輸入拼音, 就可以看到补全提示
6. 可以通过修改 rime-ls 的配置项控制补全行为
Expand Down
5 changes: 3 additions & 2 deletions doc/helix.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# helix 配置示例

helix 自带了对 LSP 的支持,但目前使用 rime-ls 还存在一些小问题,
现在属于勉强能用的状态,使用体验不太好。
helix 自带 LSP 支持,只需要修改配置文件

为了更好的用户体验,需要 rime-ls v0.3.0 及之后版本,并且配置 `config.long_filter_text = true`

## 使用方法

Expand Down
104 changes: 39 additions & 65 deletions doc/nvim.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# neovim 配置示例

neovim + nvim-cmp 为例
作者目前没有实现官方 neovim 插件,建议根据实际使用情况自行配置。

在配置文件中添加如下配置 (填入正确的程序路径和 rime 需要的目录):
以 neovim + nvim-cmp 为例,下面给出一些可行的配置方法 (须填入正确的程序路径和 rime 需要的目录):

## 为每个 buffer 开启一个 lsp server (不推荐)

```lua
local start_rime = function()
Expand Down Expand Up @@ -44,6 +46,10 @@ vim.api.nvim_create_autocmd('BufReadPost', {

```

以上配置进入文件便开启 LSP, 用快捷键切换是否开启补全

## 按需调整 cmp 的排序

cmp 会对补全候选进行排序,
为了更好的使用体验, 还需要配置 nvim-cmp

Expand Down Expand Up @@ -74,84 +80,45 @@ cmp.setup {
}
```

以上配置进入文件便开启 LSP, 用快捷键切换是否开启补全

## 状态栏显示

since v0.1.2, 可以参考以下配置在 lualine 显示 rime-ls 的当前状态:

```lua
local M = {}

function M.setup_rime()
-- maintain buffer only status
vim.b.rime_enabled = false
local toggle_rime = function(client_id)
vim.lsp.buf_request(0, 'workspace/executeCommand',
{ command = "rime-ls.toggle-rime" },
function(_, result, ctx, _)
if ctx.client_id == client_id then
vim.b.rime_enabled = result
end
-- toggle rime
vim.b.rime_enabled = false
local toggle_rime = function(client_id)
vim.lsp.buf_request(0, 'workspace/executeCommand',
{ command = "rime-ls.toggle-rime" },
function(_, result, ctx, _)
if ctx.client_id == client_id then
vim.b.rime_enabled = result
end
)
end

-- setup rime-ls
local start_rime = function()
local client_id = vim.lsp.start_client({
name = "rime-ls",
cmd = { 'rime_ls' },
init_options = {
enabled = false,
shared_data_dir = "/usr/share/rime-data",
user_data_dir = "~/.local/share/rime-ls",
log_dir = "~/.local/share/rime-ls",
max_candidates = 10, -- [v0.2.0 后不再有用] 与 rime 的候选数量配置最好保持一致
trigger_characters = {},
schema_trigger_character = "&" -- [since v0.2.0] 当输入此字符串时请求补全会触发 “方案选单”
},
});
if client_id then
vim.lsp.buf_attach_client(0, client_id)
vim.keymap.set('n', '<leader><space>', function() toggle_rime(client_id) end)
vim.keymap.set('i', '<C-x>', function() toggle_rime(client_id) end)
end
end

-- auto start
vim.api.nvim_create_autocmd({ 'BufReadPost', 'BufNewFile' }, {
callback = function()
start_rime()
end,
pattern = '*',
})
)
end

-- update lualine
local function rime_status()
if vim.b.rime_enabled then
return ''
else
return ''
end
-- update lualine
local function rime_status()
if vim.b.rime_enabled then
return ''
else
return ''
end

require('lualine').setup({
sections = {
lualine_x = { rime_status, 'encoding', 'fileformat', 'filetype' },
}
})
end

return M
```

例如存为 `lua/rime.lua` ,然后在 `init.lua``require('rime').setup_rime()`
require('lualine').setup({
sections = {
lualine_x = { rime_status, 'encoding', 'fileformat', 'filetype' },
}
})

```

## 全局状态
## 基于 lspconfig 的全局 LSP 状态

以上配置比较简陋,对每个 buffer 开启一个 LSP server 实例,如果希望保持一个全局的输入法状态,可以参考以下配置,
如果希望保持一个全局的输入法状态,可以参考以下配置,
给 lspconfig 添加一个 custom server:

```lua
Expand Down Expand Up @@ -319,3 +286,10 @@ require('lspconfig').rime_ls.setup {
}
```

## 使用其他用户开发的插件

目前没有官方实现的 neovim 插件,但已有用户将相关功能封装成了插件,例如:

- [liubianshi/cmp-lsp-rimels](https://github.com/liubianshi/cmp-lsp-rimels)

也可参考 issue 里其他用户的配置片段。
2 changes: 2 additions & 0 deletions doc/vim.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

# vim 配置示例

目前没有现成插件,建议根据实际使用情况自行配置。

以 vim + coc.nvim 为例,

`coc-settings.json` 里加入如下配置 (填入正确的程序路径和 rime 需要的目录):
Expand Down
5 changes: 2 additions & 3 deletions doc/zed.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
> 只在最新版 Zed (v0.133.7) 的 linux 版本测试过。
Zed 添加 LSP 服务需要写插件,
可以参考 [zed-ext-rime-ls](https://github.com/wlh320/zed-ext-rime-ls)
的实现。
可以参考 [zed-ext-rime-ls](https://github.com/wlh320/zed-ext-rime-ls) 的实现。


使用方法是 `git clone` 下来,通过 Install Dev Extension 安装。

可以在 Zed 的 Settings 里面覆盖默认的 `initialization_options`设置。
可以在 Zed 的 Settings 里面覆盖默认的 `initialization_options` 设置。

0 comments on commit bd728ee

Please sign in to comment.