Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

deoplete.nvimのソースをつくってみた

$
0
0

Summary

下記のような感じでオートコンプリートしたい

apと入力したらapple
baと入力したらbanana
chと入力したらcherry

image.png

必要なもの

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.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'# なまえself.mark='[kohei]'# mark のなまえdefgather_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

image.png

ソース

importrefrom.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'self.mark='[kohei]'self.input_pattern=(r'^fruits\.')# input_pattern で fruits. を指定するdefget_complete_position(self,context):# input_pattern を使うときは必須m=re.search(r'\w*$',context['input'])returnm.start()ifmelse-1defgather_candidates(self,context):return["apple","banana","cherry"]

最小のセッティング

set runtimepath+=~/.config/nvim/rplugin
set runtimepath+=~/.config/nvim/plugins/deoplete.nvim
letg:deoplete#enable_at_startup =1filetype plugin indent on
syntax enable

やりたいこと3

appleを選択したらappleの説明を表示したい

image.png

ソース

from.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'self.mark='[kohei]'defgather_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.

次世代補完フレームワークdeoplete.nvimと、そのソースの内部を詳しく


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>