Spec-Zone.ru › Deno 2

Настройка вашей среды

Deno поставляется с многими инструментами, обычно необходимыми для разработки приложений, включая полный сервер языка (LSP), который поможет вашему IDE. Эта страница поможет вам настроить вашу среду, чтобы максимально использовать Deno во время разработки.

Мы рассмотрим:

  • Как использовать Deno с вашим любимым редактором/IDE
  • Как сгенерировать автодополнение командной строки

Настройка вашего редактора/IDE

Visual Studio Code

Если вы еще этого не сделали, скачайте и установите Visual Studio Code с официального сайта.

В вкладке Расширения найдите «Deno» и установите расширение от Denoland.

Далее, откройте Палитру команд, нажав Ctrl+Shift+P и введите Deno: Initialize Workspace Configuration. Выберите этот вариант, чтобы настроить Deno для вашей рабочей области.

The VSCode command palette with the Deno: Initialize Workspace Configuration option selected.

В вашей рабочей области будет создан файл .vscode/settings.json, содержащий следующую конфигурацию:

{
  "deno.enable": true
}

Готово! Вы успешно настроили среду разработки Deno с помощью VSCode. Теперь вы получите все преимущества LSP Deno, включая IntelliSense, форматирование кода, проверку кода и многое другое.

IDE JetBrains

Для установки плагина Deno откройте IDE и перейдите в Файл > Настройки. Перейдите в Плагины и найдите Deno. Установите официальный плагин Deno.

The WebStorm plugins settings

Чтобы настроить плагин, снова перейдите в Файл > Настройки. Перейдите в Языки и фреймворки > 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API