1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 09:40:06 +08:00
SpaceVim/bundle/LeaderF-snippet/plugin/leaderf_snippet.py

87 lines
2.3 KiB
Python

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
#======================================================================
#
# leaderf_snippet.py -
#
# Created by skywind on 2021/02/01
# Last Modified: 2021/02/01 17:48:09
#
#======================================================================
from __future__ import unicode_literals, print_function
import sys
import time
import re
import vim
def init():
# print('init2')
return 0
def usnip_query():
source = []
vim.eval('UltiSnips#SnippetsInCurrentScope()')
items = vim.eval('items(g:current_ulti_dict_info)')
from UltiSnips import UltiSnips_Manager
import UltiSnips
manager = UltiSnips.UltiSnips_Manager
snippets = UltiSnips.UltiSnips_Manager._snips('', True)
snippets_values = {}
for snippet in snippets:
key = snippet.trigger
desc = snippet._description
snippets_values[key] = snippet._value
size = 4
for item in items:
key = item[0]
info = item[1]
desc = info.get('description', '')
value = snippets_values.get(key, '<unknow>')
desc = desc.strip()
size = max(size, len(key))
if not desc:
desc = usnip_simplify(value)
# desc = ''
source.append([key, desc, '', usnip_clear(value)])
source.sort()
for item in source:
item[2] = item[0] + (' ' * (size - len(item[0])))
return source
def usnip_clear(text):
t = re.sub('`[^`]*`', '', text)
if t.strip() == '':
t = text
return t
def usnip_simplify(text):
t = re.sub('`[^`]*`', '', text)
if t.strip() == '':
t = text
text = '\n'.join(t.split("\n")[:5])
text = re.sub('\${[^{}]*}', '...', text)
text = re.sub('\${[^{}]*}', '...', text)
text = text.replace("\n", ' ; ')
text = re.sub('\s+', ' ', text)
return text[:100]
def usnip_digest(text):
return 0
def test():
source = usnip_query()
for item in source:
key = item[0]
if key == 'def' or 0:
value = item[3]
print(key, value)
print('---')
print(usnip_clear(value))
print('---')
print(usnip_simplify(value))
return 0