GetPerson.gql
모두 한 줄로 압축된 GraphQL 쿼리가 있습니다 .
{ getPerson(id: 42) { name, age } }
명령줄을 사용하여 이 텍스트를 어떻게 예쁘게 인쇄하거나 아름답게 만들 수 있나요?
$ magical-command GetPerson.gql
{
getPerson(id: 42) {
name,
age
}
}
답변1
사용prettier
brew install prettier
macOS에 설치:
$ cat file.gql
{ getPerson(id: 42) { name, age } }
$ prettier file.gql
{
getPerson(id: 42) {
name
age
}
}
--parser graphql
(이 예에서 사용하면 동일한 출력을 얻게 됩니다.)
이 도구는 prettier
그 자리에서 사용하거나 편집할 수 있습니다. 당신은 또한 볼 수 있습니다.-w
--write
prettier --help
답변2
따라서 먼저 메타에 대한 연락처가 있는 경우 잘 작동하는 graphql 유틸리티를 GraphiQL IDE 단일 저장소에 통합한 것이 얼마나 잘못된 디자인 결정인지 알려주십시오. 왜요? 모든 것이 더 어려워지지만 훌륭합니다. 이제 더 짧은 시간에 더 많은 버그가 있는 버전을 출시할 수 있습니다.
어쨌든, 당신이 원하는 것은 VS Code와 같은 GraphQL을 사용하는 LSP(Language Server Protocol) 서버이며 완전히 필요한 GraphiQL IDE는 내부적으로 코드 들여쓰기, 커서 아래 기호 이해, 자동 완성 등을 위해 사용됩니다.
GraphQL의 경우 이는 이전에 사용 가능했던 독립형 프로젝트였습니다.graphql-language-service
. 다음을 통해 설치해 보세요 npm
:npm i -g graphql-language-service-server
그런 다음 파일 형식을 지정하는 명령을 받아들일 수 있는 클라이언트를 사용해야 합니다. 이 경우에는 neovim이 최선의 선택인 것 같습니다. graphql 파일이 로드될 때 자동으로 LSP 서버를 시작하고 필요에 따라 연결하도록 설정해야 합니다. 그런 다음 파일을 열고, 파일 형식을 GraphQL( :set ft=graphql
)로 설정하고, 실행하고 :lua vim.lsp.buf.format()
, 결과 파일을 저장하고( :w
) 종료하는 명령을 실행합니다. 따라서 명령줄에서는 다음과 같습니다.
nvim -c ':set ft=graphql' -c ':lua vim.lsp.buf.format()' -c ':w' -c ':q' yourfile
지금은 이것을 테스트하지 않았으므로 graphql에 대한 neovim + LSP 설정의 세부 사항에 악마가 있다고 확신합니다(그런데 저는 유용한 기본 구성을 얻기 위해 astronvim을 사용합니다). 이 수준의 작업은 당신에게 맡겨져 있습니다.
장점은 neovim을 클라이언트로 사용할 수 있다는 것입니다.어느C++, Rust, JavaScript 또는 오늘날 더 모호한 언어이든 LSP는 LSP 구현과 함께 제공됩니다.