mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 09:40:06 +08:00
87 lines
2.3 KiB
Python
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
|
|
|
|
|