본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Terraform Language Server Protocol (Portable)

0

Terraform Language Server Protocol (Portable)는 Terraform 구성 파일에 대한 언어 지원을 제공하는 오픈소스 Language Server 구현입니다.

개발 도구오류 검사자동 완성

소개

Terraform Language Server Protocol (Portable)는 Terraform 구성 파일에 대한 언어 지원을 제공하는 오픈소스 Language Server 구현입니다. juliosueiras가 개발 및 유지 관리하며, 자동 완성, 오류 검사, 하이버 기능 등을 통해 Terraform 코딩 경험을 향상시킵니다. 이 도구는 Visual Studio Code, Atom, Vim, Sublime Text, IntelliJ, Emacs 등 다양한 편집기와 통합되어 작동합니다. 현재 버전은 0.0.11-beta2이며, MIT 라이선스 하에 배포됩니다.

상세정보

변수 복잡 완성

무한 중첩 타입을 지원하는 변수 자동 완성을 제공하여 복잡한 Terraform 모듈 변수 입력을 돕습니다.

Provider 및 Resource 완성

Provider 설정 및 Resource 블록(예: Kubernetes provider와 같은 무한 블록)에 대한 자동 완성을 지원하며, Data source 완성도 포함됩니다.

동적 오류 검사

Terraform 및 HCL 문법에 대한 실시간 오류 검사를 수행하여 코딩 중 오류를 조기에 발견할 수 있도록 도와줍니다.

Provider 바이너리 통신

Provider 바이너리와 직접 통신하여 Terraform 0.12 SDK로 빌드된 어떤 Provider라도 지원할 수 있도록 확장성을 제공합니다.

무한 중첩 변수 완성

Module 내부의 중첩된 변수에 대해서도 무한 수준까지 자동 완성을 지원하여 복잡한 인프라 정의 작업을 용이하게 합니다.

다운로드·설치 방법

공식 릴리스는 GitHub 저장소의 [Releases](https://github.com/juliosueiras/terraform-lsp/releases) 페이지에서 확인할 수 있습니다. 소스 코드에서 직접 빌드하려면 다음 단계를 따릅니다.

  1. 저장소를 클론하거나 릴리스 아카이브를 다운로드합니다.
  2. terraform-lsp 디렉터리에서 다음 명령을 실행하여 의존성을 다운로드하고 빌드합니다:
    GO111MODULE=on go mod download
    make
  3. 선택적으로 DST 매개변수를 지정하여 사용자 정의 경로에 설치할 수 있습니다:
    make copy DST="$your_preferred_bin_path"
  4. Nixpkgs를 사용하는 경우, nixpkgs를 설치한 후 nix-build 명령을 실행합니다.

기본 사용법/명령어

빌드 후 생성된 실행 파일은 Language Server로서 편집기의 LSP 클라이언트와 통신합니다. 사용자는 편집기의 설정에서 이 Language Server의 실행 파일 경로를 지정해야 합니다. 예를 들어 Visual Studio Code에서는 settings.json에 “terraform-lsp.serverPath” 설정을 추가하여 사용할 수 있습니다.

지원 환경·시스템 요구사항

이 도구는 Go 1.14 이상이 설치된 Windows, macOS, Linux 시스템에서 빌드 및 실행할 수 있습니다. Language Server Protocol을 지원하는 편집기(Visual Studio Code, Atom, Vim, Sublime Text 3, IntelliJ, Emacs 등)와 함께 사용해야 기능을 발휘합니다.

최신 버전·업데이트

현재 버전은 0.0.11-beta2이며, 저장소의 master 브랜치에서 최신 개발이 진행 중입니다. 업데이트 정보는 GitHub의 [Releases](https://github.com/juliosueiras/terraform-lsp/releases) 페이지에서 확인할 수 있습니다.

제한 사항·확인 사항

  • 일부 LSP 기능(hover, signatureHelp, declaration, references 등)은 현재 구현되지 않았거나 부분적으로만 지원됩니다.
  • 이 저장소는 실험적 기능에 초점을 맞추고 있으며, 안정성을 중시하는 경우 terraform-ls 프로젝트를 고려할 수 있습니다.
  • Terraform v0.15에서 provider JSON 저장 방식 변경으로 인해 호환성 문제가 발생할 수 있습니다.

시스템 요구사항

Go 1.14+가 필요하며, 소스 코드에서 빌드할 경우 make 및 Go 툴체인이 필요합니다.