deoplete.nvimのソースをつくってみた
Summary
下記のような感じでオートコンプリートしたい
ap
と入力したらapple
ba
と入力したらbanana
ch
と入力したらcherry
必要なもの
deoplete.nvim
# dein.toml の記入例
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_add = 'let g:deoplete#enable_at_startup = 1'
ソースをつくる
ソースの置き場所
$XDG_CONFIG_HOME/nvim/rplugin/python3/deoplete/sources
まずフォルダをつくる
cd $XDG_CONFIG_HOME/nvim
mkdir -p rplugin/python3/deoplete/sources
ソース(パイソンファイル)を作成
cd rplugin/python3/deoplete/sources
vim callmekohei.py
callmekohei.py
の中身(さわるところは3ヶ所のみ!)
from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei' # なまえ
self.mark = '[kohei]' # mark のなまえ
def gather_candidates(self, context):
return ["apple","banana","cherry"] # ポップアップのリスト
init.vim
に記入
filetype plugin indent on
の前に書く
set runtimepath+=$XDG_CONFIG_HOME/nvim/rplugin
filetype plugin indent on
syntax enable
やりたいこと2
fruits.
と入力したらapple, banana, cherry
ソース
import re
from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei'
self.mark = '[kohei]'
self.input_pattern = (r'^fruits\.') # input_pattern で fruits. を指定する
def get_complete_position(self, context): # input_pattern を使うときは必須
m = re.search(r'\w*$', context['input'])
return m.start() if m else -1
def gather_candidates(self, context):
return ["apple","banana","cherry"]
最小のセッティング
set runtimepath+=~/.config/nvim/rplugin
set runtimepath+=~/.config/nvim/plugins/deoplete.nvim
let g:deoplete#enable_at_startup = 1
filetype plugin indent on
syntax enable
やりたいこと3
apple
を選択したらapple
の説明を表示したい
ソース
from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei'
self.mark = '[kohei]'
def gather_candidates(self, context):
return [
{
'word' : "apple"
, 'abbr' : "apple : red, round and delicious!"
, 'info' : "Apple is delicious"
, 'kind' : "Food"
, 'dup' : 1
}
]
参照
ヘルプ :help deoplete
CREATE SOURCE *deoplete-create-source*
To create source, you should read default sources implementation in
rplugin/python3/deoplete/source/*.py.
The files are automatically loaded and deoplete creates new Source class
object.
Source class must extend Base class in ".base".
Note: The sources must be created by Python3 language.
Note: If you call Vim functions in your source, it is not asynchronous.
Author And Source
この問題について(deoplete.nvimのソースをつくってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/callmekohei/items/5442483b5f34e1d2f240著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .