by Artem Pyanykh (community) Neovim, VS Code, Emacs, Helix
LSP-сервер для Markdown с поддержкой wiki-ссылок. Превращает редактор в полноценный инструмент для ведения заметок и личных вики — автодополнение, переходы, рефакторинг ссылок. Возможности: - Автодополнение [[wiki-ссылок]] между заметками - Go to definition для ссылок на другие файлы - Find references: где упоминается текущая заметка - Rename: переименование файла обновляет все ссылки - Диагностика битых ссылок - Поддержка Obsidian-стиля [[wikilinks]] - Работает с любым набором markdown-файлов
Официальный LSP-сервер для Rust — де-факто стандарт разработки на Rust. Самый функциональный language server из существующих: …
Быстрая грамматика и спелл-чекер английского языка как LSP-сервер. Работает офлайн, без облачных запросов, встраивается прямо в …
Официальный LSP-сервер для Go от команды Go (Google). Единственный рекомендуемый language server для Go — глубокая …
Мощный LSP-сервер для Lua — обязателен для разработки Neovim-плагинов и конфигурации. Понимает Neovim API, love2d, OpenResty …
# Скачать бинарь с GitHub Releases:
# https://github.com/artempyanykh/marksman/releases
# macOS (brew):
brew install marksman
# Neovim (nvim-lspconfig):
require('lspconfig').marksman.setup{}
# VS Code:
# Extensions → "Marksman" → Install
Пишите Markdown с поддержкой кода и интеллектуальными функциями прямо в вашем любимом редакторе.
)
Marksman — это программа, которая интегрируется в ваш редактор, помогая писать и поддерживать документы в формате Markdown. Используя протокол LSP, она предоставляет автодополнение, переход к определению, поиск ссылок, переименование, рефакторинг, диагностику и многое другое. Помимо обычного Markdown, он также поддерживает ссылки в стиле вики-ссылок, которые позволяют вести заметки в духе Zettelkasten[^roam-research], [^markdown-memo]. Подробнее о возможностях Marksman читайте ниже.
Marksman работает в MacOS, Linux и Windows и распространяется как автономный исполняемый файл для каждой ОС.
Сервер помогает с:
md
Это [встроенная ссылка](https://github.com/artempyanykh/marksman/blob/main/some-file.md#some-heading)).
Это внутренняя [ссылка-якорь](#heading).Ссылочными ссылками Markdown: ```md См. ссылку.
* Вики-ссылками:md
Ссылка на [[другая-заметку]].
Ссылка на [[другие-заметки#заголовок]].
Внутренняя ссылка на [[#заголовок]].
```
Все типы ссылок поддерживают автодополнение, всплывающие подсказки, переход к определению/ссылкам. Кроме того, Marksman предоставляет диагностику для вики-ссылок для обнаружения нерабочих ссылок и дублирующих/неоднозначных заголовков.
* через lsp)
Пример конфигурации (добавьте следующее в ваш `~/.vim/after/ftplugin/markdown.vim`):
```viml
if exists('g:loaded_lsp')
call LspAddServer([#{ name: 'marksman', filetype: ['markdown'], path: '/path/to/marksman', args: ['server'], syncInit: v:true }])
end
```
Emacs: * через LSP Mode (автоматическая установка сервера).
Пример конфигурации для пользователей `use-package`:
```lisp
(use-package markdown-mode
:hook (markdown-mode . lsp)
:config
(require 'lsp-marksman))
```
* через Eglot, требует настройки (если только
eglot#1013 не будет объединён); добавьте следующее в ваш
init.el
```lisp
(add-to-list 'eglot-server-programs '(markdown-mode . ("marksman")))
(add-hook 'markdown-mode-hook #'eglot-ensure)
```
marksman в
ваш PATH.settings.json Zed:```jsonc // Настройки Zed { // ... "languages": { "Markdown": { "language_servers": ["marksman"] } } }
```
Смотрите инструкции по установке).
)
Смотрите страницу «Возможности»), чтобы узнать больше о языковых функциях, конфигурациях и одно- и многофайловом режимах.
.marksman.toml в корневой папке вашего проекта, либо инициализируйте репозиторий (например, git init). Смотрите эту страницу), чтобы узнать больше об одно- и многофайловом режимах.xattr -d com.apple.quarantine <путь-к-исполняемому-файлу-marksman>.[^roam-research]: Вы, возможно, слышали о Roam Research. Это коммерческая реализация метода Zettelkasten и ещё одна точка отсчёта для понимания того, чем занимается Marksman. Однако, в отличие от проприетарного Roam Research, Marksman является бесплатным, с открытым исходным кодом и интегрируется в ваш любимый редактор (хотя и не так функционально богат, как Roam Research).
[^markdown-memo]: Существует отличное расширение для VSCode под названием Markdown Memo. вам определённо стоит ознакомиться с ним, если вы в основном используете VSCode, так как у него есть некоторые функции, которых нет в Marksman и расширении Marksman для VSCode. Однако Markdown Memo специфичен для VSCode, тогда как Marksman — это универсальный язык-сервер, поэтому может использоваться с любым редактором, поддерживающим LSP: Emacs, Vim, Neovim и т.д.
[^lsp]: Поскольку Marksman является обычным языковым сервером, большая часть функциональности работает из коробки с любым LSP-клиентом.
[^single-file-mode]: Существует инициатива по добавлению однофайлового режима в LSP, но это не часть спецификации, по крайней мере, до и включая v3.17.