μ΄λ¬ν κ²½κ³ λ μ’
μ’
μ’μ κ²λ³΄λ€ λ λ§μ ν΄λ₯Ό λΌμΉκ³ μ°λ¦¬μ μ½μ λΆλμ°μ μ€μΌμν΅λλ€.
<!-- svelte-ignore a11y-no-onchange -->
λ±μΌλ‘ μ½λλ₯Ό λ²λ¦¬λ κ²μ νμ©λμ§ μμ΅λλ€.
μΌλ°μ μΌλ‘ rollup.configμμ νν°λ§ ν μ μμ§λ§ svelte-checkλ μ ννμ§ μμ΅λλ€.
λ€μμ νν°λ§νλ κ°μ₯ μ’μ λ°©λ²μ 무μμ λκΉ?
κ΅¬μ± νμΌμ μκ° ν λκ° λμμ΅λκΉ?
--compiler-warnings
μ΅μ
μ μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄ --compiler-warnings "css-unused-selector:ignore,unused-export-let:ignore"
λ λͺ¨λ css-unused-selector
λ° unused-export-let
κ²½κ³ λ₯Ό νν°λ§ν©λλ€. μμΈν λ΄μ©μ svelte-check readme λ₯Ό μ°Έμ‘°νμμμ€.
VS Codeμ λν΄ : λͺ¨λ μ¬μ©μκ° μμ ν μ μ₯μμ μμ
κ³΅κ° μ€μ json μ μΈμ λ μ§ μΆκ° ν μ μμ΅λλ€. λλ μ΄κ²μ svelte.config.js
μμ λ£λ κ²μ λ§μ€μ΄κ³ μλ€. μλνλ©΄μ΄ μ€μ νμΌμ΄ μ΄λ€ λ°©ν₯μΌλ‘ κ° κ²μΈμ§μ λν 곡μμ μΈ ν©μκ° μκΈ° λλ¬Έμ κ±°κΈ°μ μλλ₯΄λ κ²μ μΆκ°νκ³ μΆμ§ μλ€.
κ°μ¬.
--compiler-warnings
λ cliλ₯Ό μν΄ μΌμ ν κ²μ
λλ€. μμ
κ³΅κ° μ€μ jsonμ κ²½μ° .editorconfig
μΈμλ μμ£Ό μ¬μ©νλ κ²μ
λκΉ?
κΈμ, λͺ¨λ VS Codeλ₯Ό μ¬μ©νκ³ νΉμ μ€μ μ λμνλ©΄ νμ€ν μ¬μ©ν κ²μ λλ€. κ²°κ΅ μΌμ’ μ κ΅¬μ± νμΌμ΄κΈ°λν©λλ€. μ°λ¦¬λ μ§κΈ μ°λ¦¬ νλ‘μ νΈ μ€ νλμμ κ·Έκ²μν©λλ€.
μ΄κ²μ μΈμ΄ μλ²μλ μ μ©λ©λκΉ? μλλ©΄ κ°λ λ€λ 체ν¬μλ§? μΈμ΄ μλ²λ₯Ό svelteserver --stdio --compiler-warnings a11y-autofocus:ignore,a11y-no-onchange:ignore
λ‘ μ€ννλ €κ³ νμ§λ§ μΈμ΄ μλ²κ° μ¬μ ν κ²½κ³ λ₯Ό μμ±ν©λλ€.
μ΄κ²μ lsp λͺ¨λλ₯Ό μ¬μ©νλ Emacsμ μμ΅λλ€.
μ΄κ²μ vscode λ° svelte-checkμλ§ μ μ©λ©λλ€. λ€λ₯Έ IDEλ μΈμ΄ μλ²μ μ΄λ»κ² ν΅ν©λ©λκΉ? μΈμ΄ μλ²λ μΈμ΄ μλ² νλ‘ν μ½μ λ°λΌ μ΄κΈ°ν λͺ λ Ήμ μ€ννλ λμ μμμ κ΅¬μ± κ°μ²΄ (vscode νμ₯ readmeμ ꡬ쑰)λ₯Ό μμν©λλ€.
μμμ΄. Emacsμ lsp λͺ¨λλ₯Ό ν¬ν¨νμ¬ λͺ¨λ κΈ°λ₯μ κ°μΆ μΈμ΄ μλ² ν΄λΌμ΄μΈνΈλ JSONRPCλ₯Ό ν΅ν΄ μλ²λ‘ ꡬμ±μ μ λ¬νλ κΈ°λ₯μ μ§μν©λλ€. μ΄μ μ΄κ²μ΄ κ΅¬μ± λ μμΉλ₯Ό μ΄ν΄ νμΌλ―λ‘ lsp λͺ¨λμμ Svelte λͺ¨λμ ν₯μμμΌ ν΄λΉ κ΅¬μ± ν€λ₯Ό νΈλ¦¬ν μ¬μ©μ μ΅μ μ μ°κ²°νλ κ²μ΄ κ°λ¨ν΄μΌν©λλ€. κ·Έμ λ°λΌ lsp-modeμ λν λ¬Έμ λ₯Ό μ΄κ² μ΅λλ€.
READMEμμ μ΄κ²μ λͺ μ μ μΌλ‘ μΈκΈ ν κ°μΉκ°μμ κ²μ λλ€. "μΈμ΄ μλ²μ ꡬμ±μ κ΅¬μ± κ°μ²΄λ₯Ό μ λ¬νμ¬ LSP νλ‘ν μ½μ ν΅ν΄ λ°μν©λλ€. LSP ν΄λΌμ΄μΈνΈμλ μλ²μ λν κ΅¬μ± κ°μ²΄λ₯Ό μ€μ νλ λ°©λ²μ΄ μμ΄μΌν©λλ€. μ¬κΈ°μ λν λ§ν¬κ° μμ΅λλ€. μ§μλλ ꡬμ±μ λν μ¬μ [...] "
λν μ€μ λ‘ λͺ
λ Ή μ€ μ΅μ
μ ꡬ문 λΆμνκ³ / λλ μ λ¬ λ λ μ€λ₯λ₯Ό λ°μμν¬ κ°μΉκ° μμ΅λλ€. --help
μ΄ μμλλ‘ μλνμ§ μμκΈ° λλ¬Έμ λͺ
λ Ή μ€ μ΅μ
μ΄ μ§μλλμ§ μ¬λΆκ° λͺ
ννμ§ μμμ΅λλ€.
λΉμ μ λμμ μ£Όμ μ κ°μ¬ν©λλ€.
@elianiva μ΅κ·Ό λ¬Έμ μμ LSPλ₯Ό μ§μ μ€ννκ³ μΌλΆ μ€μ μ κ΅¬μ± ν μ μλ€κ³ μΈκΈνμ΅λλ€. @ raxod502 κ° λ§νλ κ²κ³Ό λμΌν LSP λͺ¨λλ₯Ό μ¬μ©ν κ°λ₯μ±μ΄ μμΌλ―λ‘ λμμ΄ λ μ μμ΅λκΉ?
μλμ, lsp-mode
μ¬μ©νμ§ μμ΅λλ€. μ λ neovimμ λ΄μ₯ LSPλ₯Ό μ¬μ©νλ©° LSPμ λͺ κ°μ§ μ΅μ
μ μ λ¬ν μ μμ΅λλ€. λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
lsp-mode
μμμ΄ μ΅μ
μ μ΄λ»κ² μ²λ¦¬νλμ§ λͺ¨λ₯΄κ² μ΅λλ€. λλ κ·Έκ²μ μν€μμ λΉ λ₯΄κ² μ½μκ³ κ·Έκ²μ΄ κ°λ₯ νλ€κ³ μκ° ν©λλ€. μλ₯Ό λ€μ΄ Lua LSPμ λͺ κ°μ§ μ΅μ
μ μ λ¬ν μ μμ΅λλ€. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/
μ, μ΄κ²μ lsp-modeμ μν΄ μμ ν μ§μλλ©° μλΉν μ§λ³΄ λ λ°©μμΌλ‘ μ§μλ©λλ€. κ° κ΅¬μ± ν€λ λ³λλ‘ λ¬Έμν λ μ¬μ©μ μ΅μ μ μ½κ² 맀ν λ μ μμ΅λλ€. λ€μμ goplsμ μμ λλ€. https://github.com/emacs-lsp/lsp-mode/blob/0349a1cc0976829fab8f73ecc033252be31a7cf6/clients/lsp-go.el#L215 -L221
@dummdidumm λλ neovim-lsp
μλνκΈ°λ‘ κ²°μ νμΌλ©° μ¬μ μ κ°λ₯ν cmd μ΅μ
λλΆμ μ§νΌ ν¬μ₯ μ€ 2 ν¨ν€μ§μμλ νλ₯νκ² μλν©λλ€.
lspconfig.tsserver.setup{
cmd = { "yarn", "typescript-language-server", "--stdio" };
on_attach = on_attach;
}
lspconfig.svelte.setup{
cmd = { "yarn", "svelteserver", "--stdio" };
on_attach = on_attach;
settings = {
svelte = {
compilerWarnings = {
["a11y-no-onchange"] = "ignore"; -- <<< This doesn't work, svelte still spams me with this warning
}
}
}
}
language-server
μ readmeμλ svelte-vscode
ν¨ν€μ§μμ μ°Ύμ κ΅¬μ± μ΅μ
μ΄ μμ΅λλ€. :μκ°:
λ λ§μ νΈμ§μκ° lsp ꡬνμ λ§λ€κΈ° λλ¬Έμ language-server
μ readmeμλ μ΅μ
μ΄μλ κ²μ΄ μ’μ΅λλ€.
neovim-lsp
λν κ΅¬μ± νλ‘μΈμ€λ₯Ό μ€λͺ
νκ³ svelte-vscode
ν¨ν€μ§μ μ€λͺ
λ lsp μ΅μ
μ λν λ§ν¬λ₯Ό λ§λλ readme PRμ μμ± νμκ² μ΅λκΉ?
μ΄λ€ μ΄μ λ‘ svelte.config.js
ꡬ문 λΆμ ν λ language-server
λ onwarn
무μνμ§λ§ preprocess
ν©λλ€. μλ λ 건κ°μ?
svelte.config.js
μμ ꡬμ±νλ κ²μ΄ λ κ°λ¨νλ€κ³ μκ°ν©λλ€.
compilerWarnings
μ (λ) neovim-lsp
μμ μ΅μ
μ μ λ¬νμ¬ μμ
μ 무μν©λλ€. :μ€λ§ν:
const sveltePreprocess = require('svelte-preprocess');
module.exports = {
preprocess: sveltePreprocess(),
onwarn: (warning, handler) => {
if (warning.code === 'a11y-no-onchange') return;
handler(warning);
},
};
@ non25 μ΄κ²μ svelte.compilerWarnings
μλλΌ svelte.plugin.svelte.compilerWarnings
μ΄κΈ° λλ¬Έμ μλν©λλ€.
lspconfig.svelte.setup{
cmd = { "yarn", "svelteserver", "--stdio" };
on_attach = on_attach;
settings = {
svelte = {
plugin = {
svelte = {
compilerWarnings = {
["a11y-no-onchange"] = "ignore"
}
}
}
}
}
}
μλ₯Ό λ€μ΄ "sapper dev"λͺ λ Ήμ μ¬μ©ν λ μ½ ν΄μ§λ κ²μ μ΄λ»κ² μ΅μ ν©λκΉ? "μ»΄νμΌλ¬ κ²½κ³ "μ΅μ μ΄ μ ν 보μ΄μ§ μμ΅λλ€. κ°μ¬ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μλμ,
lsp-mode
μ¬μ©νμ§ μμ΅λλ€. μ λ neovimμ λ΄μ₯ LSPλ₯Ό μ¬μ©νλ©° LSPμ λͺ κ°μ§ μ΅μ μ μ λ¬ν μ μμ΅λλ€. λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.lsp-mode
μμμ΄ μ΅μ μ μ΄λ»κ² μ²λ¦¬νλμ§ λͺ¨λ₯΄κ² μ΅λλ€. λλ κ·Έκ²μ μν€μμ λΉ λ₯΄κ² μ½μκ³ κ·Έκ²μ΄ κ°λ₯ νλ€κ³ μκ° ν©λλ€. μλ₯Ό λ€μ΄ Lua LSPμ λͺ κ°μ§ μ΅μ μ μ λ¬ν μ μμ΅λλ€. https://emacs-lsp.github.io/lsp-mode/page/lsp-lua-language-server/