JavaScript

JavaScriptのサポートはZedでネイティブに利用できます。

コードのフォーマット

保存時のフォーマットは、TypeScriptの組み込みコードフォーマットを使用してJavaScriptに対してデフォルトで有効になっています。ただし、多くのJavaScriptプロジェクトでは、Prettierなどのその他のコマンドラインコードフォーマットツールが使用されています。設定でJavaScriptに対して外部コードフォーマットを指定することで、これらのツールのいずれかを使用できます。詳細については、構成ドキュメントを参照してください。

たとえば、PrettierがインストールされていてPATHにある場合、settings.jsonに以下を追加することで、JavaScriptファイルをフォーマットできます。

{
  "languages": {
    "JavaScript": {
      "format_on_save": {
        "external": {
          "command": "prettier",
          "arguments": ["--stdin-filepath", "{buffer_path}"]
        }
      }
    }
  }
}

ESLint

フォーマット時にESLintコードアクションを実行することで、eslint --fixを使用してコードをフォーマットするようにZedを設定できます(Zed 0.125.0が必要です)。

{
  "languages": {
    "JavaScript": {
      "code_actions_on_format": {
        "source.fixAll.eslint": true
      }
    }
  }
}

fixAllを使用するときに、単一のESLintルールのみを実行することもできます。

{
  "languages": {
    "JavaScript": {
      "code_actions_on_format": {
        "source.fixAll.eslint": true
      }
    }
  },
  "lsp": {
    "eslint": {
      "settings": {
        "codeActionOnSave": {
          "rules": ["import/order"]
        }
      }
    }
  }
}

注意:設定した他のフォーマッタは、ESLintの後に引き続き実行されます。そのため、言語サーバまたはPrettierの設定がESLintのルールに従ってフォーマットしない場合、ESLintで修正されたものが上書きされ、エラーが発生します。

保存時にのみESLintを実行する場合は、コードアクションをフォーマッタとして設定できます(Zed 0.130.xが必要です)。

{
  "languages": {
    "JavaScript": {
      "formatter": {
        "code_actions": {
          "source.fixAll.eslint": true
        }
      }
    }
  }
}

ESLintのnodePathを設定する

ESLint の nodePath 設定を構成できます (Zed 0.127.0 が必要)

{
  "lsp": {
    "eslint": {
      "settings": {
        "nodePath": ".yarn/sdks"
      }
    }
  }
}

ESLint の problems を構成します

ESLint の problems 設定を構成できます (Zed 0.130.x が必要)。

たとえば、problems.shortenToSingleLine を設定する方法は次のとおりです。

{
  "lsp": {
    "eslint": {
      "settings": {
        "problems": {
          "shortenToSingleLine": true
        }
      }
    }
  }
}

ESLint の rulesCustomizations を構成します

ESLint の rulesCustomizations 設定を構成できます

{
  "lsp": {
    "eslint": {
      "settings": {
        "rulesCustomizations": [
          // set all eslint errors/warnings to show as warnings
          { "rule": "*", "severity": "warn" }
        ]
      }
    }
  }
}

Yarn の統合

プロジェクトで Yarn を使用するよう構成する手順については、Yarn のドキュメントを参照してください。