From 3f25952c13d5847d510c0cae22a8ba876638d570 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:40:16 +0200 Subject: Adding upstream version 2.8.3. Signed-off-by: Daniel Baumann --- powerline/segments/vim/plugin/coc.py | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 powerline/segments/vim/plugin/coc.py (limited to 'powerline/segments/vim/plugin/coc.py') diff --git a/powerline/segments/vim/plugin/coc.py b/powerline/segments/vim/plugin/coc.py new file mode 100644 index 0000000..290faec --- /dev/null +++ b/powerline/segments/vim/plugin/coc.py @@ -0,0 +1,51 @@ +# vim:fileencoding=utf-8:noet +from __future__ import (unicode_literals, division, absolute_import, print_function) + +try: + import vim +except ImportError: + vim = object() + +from powerline.bindings.vim import vim_command_exists +from powerline.theme import requires_segment_info + +# coc_status's format: E1 W2 +def parse_coc_status(coc_status): + # type(coc_status) is tuple + errors_count = 0 + warnings_count = 0 + if len(coc_status) <= 0: + return errors_count, warnings_count + status_str = coc_status[0] + if len(status_str) <= 0: + return errors_count, warnings_count + status_list = status_str.split(' ') + for item in status_list: + if len(item) > 0 and item[0] == 'E': + errors_count = int(item[1:]) + if len(item) > 0 and item[0] == 'W': + warnings_count = int(item[1:]) + return errors_count, warnings_count + +@requires_segment_info +def coc(segment_info, pl): + '''Show whether coc.nvim has found any errors or warnings + + Highlight groups used: ``coc:warning`` or ``warning``, ``coc:error`` or ``error``. + ''' + segments = [] + if not vim_command_exists('CocCommand'): + return segments + coc_status = vim.eval('coc#status()'), + errors_count, warnings_count = parse_coc_status(coc_status) + if errors_count > 0: + segments.append({ + 'contents': 'E:' + str(errors_count), + 'highlight_groups': ['coc:error', 'error'], + }) + if warnings_count > 0: + segments.append({ + 'contents': 'W:' + str(warnings_count), + 'highlight_groups': ['coc:warning', 'warning'], + }) + return segments -- cgit v1.2.3