首页 > 解决方案 > 带有 CoC + Neovim 的 GraphQL LSP

问题描述

我正在尝试通过 CoC(完成征服)设置一个 GraphQL 语言服务器以在 NVIM 中使用以进行 linting。

我在这里从 GraphQL 安装了 LSP,但我无法让它识别我的 GQL 模式。我目前正在使用 Apollo,因此我的 Schema 位于 Javascript 文件中。

设置 LSP 的例程在这里

.graphqlrc在项目的根目录中放置了一个文件,它指向一个包含我的架构的 Javascript 文件。

schema: api/src/schema.js

语言服务器似乎短暂运行并 lint 此文件,但很快崩溃,然后给我以下错误:

[Info  - 3:47:22 PM] Connection to server got closed. Server will restart.
8/11/2021, 3:47:22 PM [4] (pid: 43189) graphql-language-service-usage-logs: {"type":"usage","messageType":"initialize"}
8/11/2021, 3:47:22 PM [1] (pid: 43189) graphql-language-service-usage-logs: Error: 
      Unable to find any GraphQL type definitions for the following pointers:
        
          - api/src/schema.js

这是我的 CoC 设置文件:

// coc-settings.json
{
  "languageserver": {
    "graphql": {
      "command": "graphql-lsp",
      "args": ["server", "-m", "stream"],
      "filetypes": [
        "typescript",
        "typescriptreact",
        "graphql",
        "javascript",
        "javascriptreact"
      ]
    }
  },
}

schema.js 文件:

const { gql } = require('apollo-server');

/**
 * Type Definitions for our Schema using the SDL.
 */
const typeDefs = gql`
  type User {
    id: ID!
    username: String!
  }

  type Pet {
    id: String!
    createdAt: Int!
    name: String!
    type: String!
    img: String!
  }

  type Query {
    pets: [Pet]!
  }

  type Mutation {
    cool: String!
  }
`;

module.exports = typeDefs;

标签: javascriptgraphqlneovim

解决方案


推荐阅读