ํ์ฌ Dart Code์๋ ๋ถ์ ์๋ฒ API์์ VS Code API๋ก ๋งคํ๋๋ ๋ง์ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. VS Code์ API๋ Code์๋ง ์ ์ฉ๋๋ฏ๋ก ์ด ์ฝ๋๋ ๋งค์ฐ ๊ตฌ์ฒด์ ์ด๋ฉฐ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ฝ๋๋ฅผ LSP ๊ตฌํ์ ํธ์ํ๋ฉด LSP๋ฅผ ๊ตฌํํ๋ ๋ค๋ฅธ ํธ์ง์์ ๊ณต์ ํ ์ ์์ต๋๋ค(์: Visual Studio์๋ ์ด์ ๋ํ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ง์์ด ์์ต๋๋ค).
VS Code์์ LSP๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ์์ ์ผ๋ก ํ์ฅ์ ๋ง๋ ๋ค์ vscode-languageclient
ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ VS Code๊ฐ ์๋ฒ์ ํต์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ด๋ํฐ๋ฅผ ๋ง๋ญ๋๋ค. ํด๋ผ์ด์ธํธ๋ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ํ๋ก์ธ์ค ๋๋ ์ธํธ ๋๋ ์
๋ ฅ/์ถ๋ ฅ ์คํธ๋ฆผ์ ๋ฐํํ๋ ํจ์๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค( ์ฌ๊ธฐ ์ฐธ์กฐ ).
Dart Code์ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ง์ ๋ฉ์์ง ๋ก ์ํํ ์ ์๋ LSP ์ง์์ ์ถ๊ฐ๋ก ์ฌ์ฉ์ ์ง์ ์์ฒญ์ ๋ํด ์๋ฒ์ ํต์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ : "Visual Studio LSP ํ์ฅ์ Visual Studio์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ฑ๋์๋ง ์ค์นํ ์ ์์ต๋๋ค. ํ๋ก๋์ ๋ชฉ์ ์ผ๋ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค."
Visual Studio์์ LSP๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ์์ ์ผ๋ก ํ์ฅ(ํ์ฌ ์ข
์์ฑ์ผ๋ก LSP ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ํ์ฅ์ด ์์)์ ๋ง๋ ๋ค์ Microsoft.VisualStudio.LanguageServer.Client
NuGet ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ Visual Studio๊ฐ ์๋ฒ์ ํต์ ํ ์ ์๋ ์ด๋ํฐ๋ฅผ ๋ง๋ญ๋๋ค.
์์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก LSP ๊ตฌํ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด VS Code๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์๋์ TypeScript(Visual Studio์์ ๋์ผํ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ ์๋์ C#)๊ฐ ํ์ํฉ๋๋ค. ์ด ์ฝ๋๋ ์๋์ ์ผ๋ก ๋ฏธ๋ฏธํ๋ฉฐ ์๋ฒ๋ฅผ ์์ฑํ๊ณ IDE์ ์ ๋ฌํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. IDE๋ ์์ฒด ๊ธฐ๋ฅ์ ์๋ฒ์ ์๋ฆฌ๊ณ ์ง์ ํต์ ํด์ผ ํฉ๋๋ค.
์ด ์์ ์ ์ํํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ํ Atom์ด๋ Eclipse์ ๊ฐ์ ๋ค๋ฅธ IDE๋ LSP๋ฅผ ์ง์ํฉ๋๋ค.
ํ์ค LSP ์ง์์ ์ ๊ณตํ๋ค๋ฉด ์ฐ๋ฆฌ ํ์ Flutter๋ฅผ Eclipse IDE์ ํตํฉํ ์ ์์ต๋๋ค. ๋ค์ํ ๋๊ตฌ ์ง์์ด Flutter์ ์ ์์ ๋งค์ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , GitHub์ @natebosch์์ ๊ด๋ฆฌํ๋ natebosch/dart_language_server ์ ์ฅ์๊ฐ ์์ต๋๋ค. ์ ๋นํ ํ๋์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@rcjsuen ๋ค, ์ด๊ฒ์ด ์ ๊ฐ ์คํ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค(์ด๋ฒ ์ฃผ์ ์ผ๋ถ PR์ ๋ณด๋์ต๋๋ค) :-)
์กฐ์ฌ๊ฐ ์๋ฃ๋์์ผ๋ฉฐ Dart ๋ถ์ ์๋ฒ์ LSP๋ฅผ ์ถ๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. ์งํ ์ํฉ์ ์ฌ๊ธฐ์์ ์ถ์ ๋ฉ๋๋ค.
https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool/lsp_spec/README.md
๋ ์ด์ ์ด ๋ฌธ์ ๊ฐ ํ์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. VS Code ํ๋ฌ๊ทธ์ธ์ ์๋ฒ์ ๋ ๋ณต์ฌ๋ณธ์ด ํ์ ํ๋ ๊ฒ์ ํผํ๊ธฐ ์ํด (๊ณต์ ์์ฒญ ๋๋ ์ฌ์ฉ์ ์ง์ ์์ฒญ์ ํตํด) ํ์ํ ๋ชจ๋ ๊ฒ์ ์ง์ํ๋ฉด ํฅํ LSP ํ๋กํ ์ฝ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ํ Atom์ด๋ Eclipse์ ๊ฐ์ ๋ค๋ฅธ IDE๋ LSP๋ฅผ ์ง์ํฉ๋๋ค.
ํ์ค LSP ์ง์์ ์ ๊ณตํ๋ค๋ฉด ์ฐ๋ฆฌ ํ์ Flutter๋ฅผ Eclipse IDE์ ํตํฉํ ์ ์์ต๋๋ค. ๋ค์ํ ๋๊ตฌ ์ง์์ด Flutter์ ์ ์์ ๋งค์ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.