Настройка вашей среды
Deno поставляется с многими инструментами, обычно необходимыми для разработки приложений, включая полный сервер языка (LSP), который поможет вашему IDE. Эта страница поможет вам настроить вашу среду, чтобы максимально использовать Deno во время разработки.
Мы рассмотрим:
- Как использовать Deno с вашим любимым редактором/IDE
- Как сгенерировать автодополнение командной строки
Настройка вашего редактора/IDE
Visual Studio Code
Если вы еще этого не сделали, скачайте и установите Visual Studio Code с официального сайта.
В вкладке Расширения найдите «Deno» и установите расширение от Denoland.
Далее, откройте Палитру команд, нажав Ctrl+Shift+P и введите Deno: Initialize Workspace Configuration. Выберите этот вариант, чтобы настроить Deno для вашей рабочей области.
В вашей рабочей области будет создан файл .vscode/settings.json, содержащий следующую конфигурацию:
{
"deno.enable": true
}
Готово! Вы успешно настроили среду разработки Deno с помощью VSCode. Теперь вы получите все преимущества LSP Deno, включая IntelliSense, форматирование кода, проверку кода и многое другое.
IDE JetBrains
Для установки плагина Deno откройте IDE и перейдите в Файл > Настройки. Перейдите в Плагины и найдите Deno. Установите официальный плагин Deno.
Чтобы настроить плагин, снова перейдите в Файл > Настройки. Перейдите в Языки и фреймворки > Deno. Установите флажок Включить Deno для вашего проекта и укажите путь к исполняемому файлу Deno (если он не был автоматически обнаружен).
Подробнее о том, как начать работу с Deno в IDE Jetbrains, вы можете узнать из этой статьи блога.
Vim/Neovim с помощью плагинов
Deno хорошо поддерживается как в Vim, так и в Neovim через coc.nvim, vim-easycomplete и ALE. coc.nvim предоставляет плагины для интеграции с сервером языка Deno, а ALE поддерживает его по умолчанию.
Neovim 0.6+ с использованием встроенного сервера языка
Для использования сервера языка Deno установите nvim-lspconfig и следуйте инструкциям, чтобы включить предоставленную конфигурацию Deno.
Обратите внимание, что если у вас также есть ts_ls в качестве клиента LSP, у вас могут возникнуть проблемы, когда как ts_ls , так и denols подключены к текущему буферу. Чтобы решить эту проблему, убедитесь, что у ts_ls и denols есть уникальные root_dir. Возможно, вам также потребуется установить single_file_support в false для ts_ls, чтобы предотвратить его выполнение в single file mode. Вот пример такой конфигурации:
local nvim_lsp = require('lspconfig')
nvim_lsp.denols.setup {
on_attach = on_attach,
root_dir = nvim_lsp.util.root_pattern("deno.json", "deno.jsonc"),
}
nvim_lsp.ts_ls.setup {
on_attach = on_attach,
root_dir = nvim_lsp.util.root_pattern("package.json"),
single_file_support = false
}
Для Deno в примере выше предполагается, что файл deno.json или deno.jsonc существует в корне проекта.
coc.nvim
После установки coc.nvim вам необходимо установить необходимый coc-deno через :CocInstall coc-deno.
После установки плагина и для включения Deno в рабочей области, выполните команду :CocCommand deno.initializeWorkspace, и вы сможете использовать команды, такие как gd (перейти к определению) и gr (перейти/найти ссылки).
ALE
ALE поддерживает Deno через сервер языка Deno по умолчанию и во многих случаях не требует дополнительной настройки. После установки ALE вы можете выполнить команду :help ale-typescript-deno, чтобы получить информацию о доступных параметрах конфигурации.
Дополнительную информацию о настройке ALE (например, назначение клавиш), см. в официальной документации.
Vim-EasyComplete
Vim-EasyComplete поддерживает Deno без дополнительных настроек. После установки vim-easycomplete вам необходимо установить deno с помощью :InstallLspServer deno если вы еще этого не сделали. Дополнительную информацию можно получить из официальной документации.
Emacs
lsp-mode
Emacs поддерживает Deno через сервер языка Deno с использованием lsp-mode. После установки lsp-mode он должен поддерживать Deno, который можно настроить для поддержки различных параметров.
eglot
Вы также можете использовать встроенный сервер языка Deno, используя eglot.
Пример конфигурации для Deno через eglot:
(add-to-list 'eglot-server-programs '((js-mode typescript-mode) . (eglot-deno "deno" "lsp")))
(defclass eglot-deno (eglot-lsp-server) ()
:documentation "A custom class for deno lsp.")
(cl-defmethod eglot-initialization-options ((server eglot-deno))
"Passes through required deno initialization options"
(list :enable t
:lint t))
Pulsar
Редактор Pulsar (ранее Atom) поддерживает интеграцию с сервером языка Deno через пакет atom-ide-deno. atom-ide-deno требует, чтобы был установлен Deno CLI и пакет atom-ide-base.
Sublime Text
Sublime Text поддерживает подключение к серверу языка Deno через пакет LSP. Возможно, вам также потребуется установить пакет TypeScript для полной подсветки синтаксиса.
После установки пакета LSP вам нужно добавить конфигурацию в вашу .sublime-project конфигурацию, как показано ниже:
{
"settings": {
"LSP": {
"deno": {
"command": ["deno", "lsp"],
"initializationOptions": {
// "config": "", // Sets the path for the config file in your project
"enable": true,
// "importMap": "", // Sets the path for the import-map in your project
"lint": true,
"unstable": false
},
"enabled": true,
"languages": [
{
"languageId": "javascript",
"scopes": ["source.js"],
"syntaxes": [
"Packages/Babel/JavaScript (Babel).sublime-syntax",
"Packages/JavaScript/JavaScript.sublime-syntax"
]
},
{
"languageId": "javascriptreact",
"scopes": ["source.jsx"],
"syntaxes": [
"Packages/Babel/JavaScript (Babel).sublime-syntax",
"Packages/JavaScript/JavaScript.sublime-syntax"
]
},
{
"languageId": "typescript",
"scopes": ["source.ts"],
"syntaxes": [
"Packages/TypeScript-TmLanguage/TypeScript.tmLanguage",
"Packages/TypeScript Syntax/TypeScript.tmLanguage"
]
},
{
"languageId": "typescriptreact",
"scopes": ["source.tsx"],
"syntaxes": [
"Packages/TypeScript-TmLanguage/TypeScriptReact.tmLanguage",
"Packages/TypeScript Syntax/TypeScriptReact.tmLanguage"
]
}
]
}
}
}
}
Nova
Редактор Nova может интегрировать сервер языка Deno через расширение Deno.
GitHub Codespaces
GitHub Codespaces позволяет вам разрабатывать полностью онлайн или удаленно на вашем локальном компьютере без необходимости настройки или установки Deno. В настоящее время он доступен в бета-версии.
Если проект является проектом, поддерживающим Deno, и содержит конфигурацию .devcontainer, как часть репозитория, открытие проекта в GitHub Codespaces должно «работать». Если вы начинаете новый проект или хотите добавить поддержку Deno в существующее пространство кода, это можно сделать, выбрав Codespaces: Add Development Container Configuration Files... из палитры команд, а затем выбрав Show All Definitions... и поиск определения Deno.
После выбора вам нужно будет перестроить контейнер, чтобы добавить Deno CLI в контейнер. После перестройки контейнера пространство кода будет поддерживать Deno.
Kakoune
Kakoune поддерживает подключение к серверу языка Deno через клиент kak-lsp. После установки kak-lsp пример его настройки для подключения к серверу языка Deno заключается в добавлении следующего в ваш kak-lsp.toml.
[language.typescript]
filetypes = ["typescript", "javascript"]
roots = [".git"]
command = "deno"
args = ["lsp"]
[language.typescript.settings.deno]
enable = true
lint = true
Helix
Helix поддерживает встроенную поддержку сервера языка. Включение подключения к серверу языка Deno требует изменений в файле конфигурации languages.toml.
[[language]]
name = "typescript"
language-id = "typescript"
scope = "source.ts"
injection-regex = "^(ts|typescript)$"
file-types = ["ts"]
shebangs = ["deno"]
roots = ["deno.json", "deno.jsonc", "package.json"]
auto-format = true
language-servers = ["deno-lsp"]
[language-server.deno-lsp]
command = "deno"
args = ["lsp"]
[language-server.deno-lsp.config.deno]
enable = true
Автодополнение командной строки
В Deno CLI встроенная поддержка генерации информации о завершении команд для самого CLI. Используя deno completions <shell>, Deno CLI выведет в стандартный вывод (stdout) автодополнения. Поддерживаемые оболочки:
- bash
- elvish
- fish
- powershell
- zsh
Пример bash
Вывести автодополнения и добавить их в среду:
> deno completions bash > /usr/local/etc/bash_completion.d/deno.bash
> source /usr/local/etc/bash_completion.d/deno.bash
Пример PowerShell
Вывести автодополнения:
> deno completions powershell >> $profile
> .$profile
Это создаст профиль PowerShell в $HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1, и он будет выполняться каждый раз при запуске PowerShell.
Пример zsh
У вас должна быть директория, где можно сохранить автодополнения:
> mkdir ~/.zsh
Затем вывести автодополнения:
> deno completions zsh > ~/.zsh/_deno
И убедитесь, что автодополнения загружаются в вашей ~/.zshrc:
fpath=(~/.zsh $fpath)
autoload -Uz compinit
compinit -u
Если после перезагрузки оболочки автодополнения все еще не загружаются, вам может потребоваться удалить ~/.zcompdump/ для удаления ранее сгенерированных автодополнений, а затем compinit для повторной генерации.
Пример zsh с ohmyzsh и antigen
ohmyzsh — это фреймворк конфигурации для zsh, который может упростить управление вашей конфигурацией оболочки. antigen — это менеджер плагинов для zsh.
Создайте директорию для хранения автодополнений и выведите автодополнения:
> mkdir ~/.oh-my-zsh/custom/plugins/deno
> deno completions zsh > ~/.oh-my-zsh/custom/plugins/deno/_deno
Затем ваша .zshrc может выглядеть примерно так:
source /path-to-antigen/antigen.zsh
# Load the oh-my-zsh's library.
antigen use oh-my-zsh
antigen bundle deno
Пример fish
Выведите автодополнения в файл deno.fish в папку автодополнений в папке конфигурации fish:
> deno completions fish > ~/.config/fish/completions/deno.fish
Другие инструменты
Если вы пишете или поддерживаете интеграцию сообщества, используя сервер языка Deno, вы найдете документацию в репозитории кода Deno CLI, а также можете присоединиться к нашему сообществу Discord в канале #dev-lsp.
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/getting_started/setup_your_environment