From dc723a39b80458ff8c52393051ff41ff83c9d118 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 18 Dec 2019 21:35:50 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=BE=D0=B1=D0=BE=D0=B2?= =?utf8?q?=D0=B0=D0=BB=20Vim=208.2=20popup=20=D0=BE=D0=BA=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://git.stargrave.org/cgit.cgi/dotfiles.git/tree/vim/.vim/ftplugin/go/gogetdoc.vim Решил я попробовать написать плагин для Vim который бы показывал доку для функи на которой я нахожусь в коде. Задачу только чисто Vim-ом вряд ли можно решить, ибо он не сможет понять что w.Write это на самом деле Write метод объекта net/http.ResponseWriter. Но есть замечательная утилита github.com/zmb3/gogetdoc, которой можно просто дать на вход путь к файлу и смещение в байтах на слово, для которого нужно найти доку. Работает оно не стремглав, но терпимо, сгодится. Задача плагина теперь очень проста: просто запустить эту внешнюю программу, вычислив положение в файле и показав её stdout вывод. Vim уже имеет асинхронные job-ы в фоне запускать и по каналу гонять данные. Но вот теперь можно попробовать показывать popup. Оказалось очень легко с ним. У него тьма опция для окон и прочего, но можно ничего не трогать и по умолчанию он отлично размещает, resize-ит окна, закрывает когда надо, программисту вообще не о чем парится: просто говоришь что я хочу показать вот этот текст рядом с курсором. -- 2.48.1