[{"data":1,"prerenderedAt":879},["ShallowReactive",2],{"navigation_docs_ko":3,"-ko-eslint-config-editor":46,"-ko-eslint-config-editor-surround":874},[4,31,36,41],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"ESLint Config","\u002Fko\u002Feslint-config","ko\u002F1.eslint-config\u002F1.index",[9,11,15,19,23,27],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-shield-check",{"title":12,"path":13,"stem":14},"Package JSON Lint","\u002Fko\u002Feslint-config\u002Fpackage-json","ko\u002F1.eslint-config\u002F2.package-json",{"title":16,"path":17,"stem":18},"Nuxt 통합","\u002Fko\u002Feslint-config\u002Fnuxt","ko\u002F1.eslint-config\u002F3.nuxt",{"title":20,"path":21,"stem":22},"프레임워크 통합","\u002Fko\u002Feslint-config\u002Fframeworks","ko\u002F1.eslint-config\u002F4.frameworks",{"title":24,"path":25,"stem":26},"고급 사용법","\u002Fko\u002Feslint-config\u002Fadvanced","ko\u002F1.eslint-config\u002F5.advanced",{"title":28,"path":29,"stem":30},"에디터 & CI 통합","\u002Fko\u002Feslint-config\u002Feditor","ko\u002F1.eslint-config\u002F6.editor",{"title":32,"path":33,"stem":34,"icon":35},"Prettier Config","\u002Fko\u002Fprettier-config","ko\u002F2.prettier-config","i-lucide-paintbrush",{"title":37,"path":38,"stem":39,"icon":40},"EditorConfig","\u002Fko\u002Feditorconfig","ko\u002F3.editorconfig","i-lucide-file-cog",{"title":42,"path":43,"stem":44,"icon":45},"CLI","\u002Fko\u002Fcli","ko\u002F4.cli","i-lucide-terminal",{"id":47,"title":28,"body":48,"description":868,"extension":869,"links":870,"meta":871,"navigation":116,"path":29,"seo":872,"stem":30,"__hash__":873},"docs_ko\u002Fko\u002F1.eslint-config\u002F6.editor.md",{"type":49,"value":50,"toc":859},"minimark",[51,55,60,76,386,397,401,404,410,421,468,471,509,513,520,561,577,580,657,660,667,761,848,855],[52,53,28],"h1",{"id":54},"에디터-ci-통합",[56,57,59],"h2",{"id":58},"vs-code","VS Code",[61,62,63,70,71,75],"p",{},[64,65,69],"a",{"href":66,"rel":67},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=dbaeumer.vscode-eslint",[68],"nofollow","VS Code ESLint 확장","을 설치하고 ",[72,73,74],"code",{},".vscode\u002Fsettings.json","에 다음을 추가하세요:",[77,78,83],"pre",{"className":79,"code":80,"filename":74,"language":81,"meta":82,"style":82},"language-jsonc shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \u002F\u002F ESLint가 포매팅을 담당하도록 Prettier와 formatOnSave 비활성화\n  \"prettier.enable\": false,\n  \"editor.formatOnSave\": false,\n\n  \u002F\u002F 저장 시 자동 수정\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.eslint\": \"explicit\",\n    \"source.organizeImports\": \"never\"\n  },\n\n  \u002F\u002F Problems 패널에서 스타일 규칙은 조용히 하되 여전히 자동 수정\n  \"eslint.rules.customizations\": [\n    { \"rule\": \"style\u002F*\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"format\u002F*\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-indent\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spacing\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spaces\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-order\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-dangle\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-newline\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*quotes\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*semi\", \"severity\": \"off\", \"fixable\": true }\n  ],\n\n  \u002F\u002F 지원하는 모든 언어에서 ESLint 실행\n  \"eslint.validate\": [\n    \"javascript\",\n    \"javascriptreact\",\n    \"typescript\",\n    \"typescriptreact\",\n    \"vue\",\n    \"html\",\n    \"markdown\",\n    \"json\",\n    \"jsonc\",\n    \"yaml\",\n    \"toml\",\n    \"xml\",\n    \"gql\",\n    \"graphql\",\n    \"astro\",\n    \"svelte\",\n    \"css\",\n    \"less\",\n    \"scss\",\n    \"pcss\",\n    \"postcss\"\n  ]\n}\n","jsonc","",[72,84,85,93,99,105,111,118,124,130,136,142,148,153,159,165,171,177,183,189,195,201,207,213,219,225,231,236,242,248,254,260,266,272,278,284,290,296,302,308,314,320,326,332,338,344,350,356,362,368,374,380],{"__ignoreMap":82},[86,87,90],"span",{"class":88,"line":89},"line",1,[86,91,92],{},"{\n",[86,94,96],{"class":88,"line":95},2,[86,97,98],{},"  \u002F\u002F ESLint가 포매팅을 담당하도록 Prettier와 formatOnSave 비활성화\n",[86,100,102],{"class":88,"line":101},3,[86,103,104],{},"  \"prettier.enable\": false,\n",[86,106,108],{"class":88,"line":107},4,[86,109,110],{},"  \"editor.formatOnSave\": false,\n",[86,112,114],{"class":88,"line":113},5,[86,115,117],{"emptyLinePlaceholder":116},true,"\n",[86,119,121],{"class":88,"line":120},6,[86,122,123],{},"  \u002F\u002F 저장 시 자동 수정\n",[86,125,127],{"class":88,"line":126},7,[86,128,129],{},"  \"editor.codeActionsOnSave\": {\n",[86,131,133],{"class":88,"line":132},8,[86,134,135],{},"    \"source.fixAll.eslint\": \"explicit\",\n",[86,137,139],{"class":88,"line":138},9,[86,140,141],{},"    \"source.organizeImports\": \"never\"\n",[86,143,145],{"class":88,"line":144},10,[86,146,147],{},"  },\n",[86,149,151],{"class":88,"line":150},11,[86,152,117],{"emptyLinePlaceholder":116},[86,154,156],{"class":88,"line":155},12,[86,157,158],{},"  \u002F\u002F Problems 패널에서 스타일 규칙은 조용히 하되 여전히 자동 수정\n",[86,160,162],{"class":88,"line":161},13,[86,163,164],{},"  \"eslint.rules.customizations\": [\n",[86,166,168],{"class":88,"line":167},14,[86,169,170],{},"    { \"rule\": \"style\u002F*\", \"severity\": \"off\", \"fixable\": true },\n",[86,172,174],{"class":88,"line":173},15,[86,175,176],{},"    { \"rule\": \"format\u002F*\", \"severity\": \"off\", \"fixable\": true },\n",[86,178,180],{"class":88,"line":179},16,[86,181,182],{},"    { \"rule\": \"*-indent\", \"severity\": \"off\", \"fixable\": true },\n",[86,184,186],{"class":88,"line":185},17,[86,187,188],{},"    { \"rule\": \"*-spacing\", \"severity\": \"off\", \"fixable\": true },\n",[86,190,192],{"class":88,"line":191},18,[86,193,194],{},"    { \"rule\": \"*-spaces\", \"severity\": \"off\", \"fixable\": true },\n",[86,196,198],{"class":88,"line":197},19,[86,199,200],{},"    { \"rule\": \"*-order\", \"severity\": \"off\", \"fixable\": true },\n",[86,202,204],{"class":88,"line":203},20,[86,205,206],{},"    { \"rule\": \"*-dangle\", \"severity\": \"off\", \"fixable\": true },\n",[86,208,210],{"class":88,"line":209},21,[86,211,212],{},"    { \"rule\": \"*-newline\", \"severity\": \"off\", \"fixable\": true },\n",[86,214,216],{"class":88,"line":215},22,[86,217,218],{},"    { \"rule\": \"*quotes\", \"severity\": \"off\", \"fixable\": true },\n",[86,220,222],{"class":88,"line":221},23,[86,223,224],{},"    { \"rule\": \"*semi\", \"severity\": \"off\", \"fixable\": true }\n",[86,226,228],{"class":88,"line":227},24,[86,229,230],{},"  ],\n",[86,232,234],{"class":88,"line":233},25,[86,235,117],{"emptyLinePlaceholder":116},[86,237,239],{"class":88,"line":238},26,[86,240,241],{},"  \u002F\u002F 지원하는 모든 언어에서 ESLint 실행\n",[86,243,245],{"class":88,"line":244},27,[86,246,247],{},"  \"eslint.validate\": [\n",[86,249,251],{"class":88,"line":250},28,[86,252,253],{},"    \"javascript\",\n",[86,255,257],{"class":88,"line":256},29,[86,258,259],{},"    \"javascriptreact\",\n",[86,261,263],{"class":88,"line":262},30,[86,264,265],{},"    \"typescript\",\n",[86,267,269],{"class":88,"line":268},31,[86,270,271],{},"    \"typescriptreact\",\n",[86,273,275],{"class":88,"line":274},32,[86,276,277],{},"    \"vue\",\n",[86,279,281],{"class":88,"line":280},33,[86,282,283],{},"    \"html\",\n",[86,285,287],{"class":88,"line":286},34,[86,288,289],{},"    \"markdown\",\n",[86,291,293],{"class":88,"line":292},35,[86,294,295],{},"    \"json\",\n",[86,297,299],{"class":88,"line":298},36,[86,300,301],{},"    \"jsonc\",\n",[86,303,305],{"class":88,"line":304},37,[86,306,307],{},"    \"yaml\",\n",[86,309,311],{"class":88,"line":310},38,[86,312,313],{},"    \"toml\",\n",[86,315,317],{"class":88,"line":316},39,[86,318,319],{},"    \"xml\",\n",[86,321,323],{"class":88,"line":322},40,[86,324,325],{},"    \"gql\",\n",[86,327,329],{"class":88,"line":328},41,[86,330,331],{},"    \"graphql\",\n",[86,333,335],{"class":88,"line":334},42,[86,336,337],{},"    \"astro\",\n",[86,339,341],{"class":88,"line":340},43,[86,342,343],{},"    \"svelte\",\n",[86,345,347],{"class":88,"line":346},44,[86,348,349],{},"    \"css\",\n",[86,351,353],{"class":88,"line":352},45,[86,354,355],{},"    \"less\",\n",[86,357,359],{"class":88,"line":358},46,[86,360,361],{},"    \"scss\",\n",[86,363,365],{"class":88,"line":364},47,[86,366,367],{},"    \"pcss\",\n",[86,369,371],{"class":88,"line":370},48,[86,372,373],{},"    \"postcss\"\n",[86,375,377],{"class":88,"line":376},49,[86,378,379],{},"  ]\n",[86,381,383],{"class":88,"line":382},50,[86,384,385],{},"}\n",[61,387,388,391,392,396],{},[72,389,390],{},"rules.customizations"," 블록이 핵심 포인트입니다: 스타일 규칙은 ",[393,394,395],"strong",{},"수정 가능","한 상태를 유지하므로 저장 시 여전히 재포매팅되지만, 관심 없는 경고로 Problems 패널을 어지럽히지 않습니다.",[56,398,400],{"id":399},"neovim","Neovim",[61,402,403],{},"Neovim에서 저장 시 포맷팅을 받는 몇 가지 방법:",[405,406,408],"h3",{"id":407},"nvim-lspconfig",[72,409,407],{},[61,411,412,413,416,417,420],{},"내장 ",[72,414,415],{},"EslintFixAll"," 명령을 ",[72,418,419],{},"BufWritePre","에서 트리거하세요:",[77,422,426],{"className":423,"code":424,"language":425,"meta":82,"style":82},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","lspconfig.eslint.setup({\n  on_attach = function(client, bufnr)\n    vim.api.nvim_create_autocmd('BufWritePre', {\n      buffer = bufnr,\n      command = 'EslintFixAll',\n    })\n  end,\n})\n","lua",[72,427,428,433,438,443,448,453,458,463],{"__ignoreMap":82},[86,429,430],{"class":88,"line":89},[86,431,432],{},"lspconfig.eslint.setup({\n",[86,434,435],{"class":88,"line":95},[86,436,437],{},"  on_attach = function(client, bufnr)\n",[86,439,440],{"class":88,"line":101},[86,441,442],{},"    vim.api.nvim_create_autocmd('BufWritePre', {\n",[86,444,445],{"class":88,"line":107},[86,446,447],{},"      buffer = bufnr,\n",[86,449,450],{"class":88,"line":113},[86,451,452],{},"      command = 'EslintFixAll',\n",[86,454,455],{"class":88,"line":120},[86,456,457],{},"    })\n",[86,459,460],{"class":88,"line":126},[86,461,462],{},"  end,\n",[86,464,465],{"class":88,"line":132},[86,466,467],{},"})\n",[405,469,470],{"id":470},"대안",[472,473,474,489,499],"ul",{},[475,476,477,484,485,488],"li",{},[64,478,481],{"href":479,"rel":480},"https:\u002F\u002Fgithub.com\u002Fstevearc\u002Fconform.nvim",[68],[72,482,483],{},"conform.nvim"," — ESLint를 ",[72,486,487],{},"formatter","로 사용하는 포매터 러너",[475,490,491,498],{},[64,492,495],{"href":493,"rel":494},"https:\u002F\u002Fgithub.com\u002Fnvimtools\u002Fnone-ls.nvim",[68],[72,496,497],{},"none-ls.nvim"," — null-ls 프로토콜을 통해 ESLint 노출",[475,500,501,508],{},[64,502,505],{"href":503,"rel":504},"https:\u002F\u002Fgithub.com\u002Fmfussenegger\u002Fnvim-lint",[68],[72,506,507],{},"nvim-lint"," — 가벼운 린터 러너",[56,510,512],{"id":511},"에디터-전용-비활성화","에디터 전용 비활성화",[61,514,515,516,519],{},"ESLint가 코드 에디터 안에서 실행될 때, 일부 규칙은 에디터가 작성 중인 코드를 공격적으로 다시 쓰지 않도록 ",[393,517,518],{},"수정 불가(non-fixable)"," 로 리포트됩니다:",[472,521,522,531,540,549],{},[475,523,524],{},[64,525,528],{"href":526,"rel":527},"https:\u002F\u002Feslint.org\u002Fdocs\u002Frules\u002Fprefer-const",[68],[72,529,530],{},"prefer-const",[475,532,533],{},[64,534,537],{"href":535,"rel":536},"https:\u002F\u002Fgithub.com\u002Flevibuzolic\u002Feslint-plugin-no-only-tests",[68],[72,538,539],{},"test\u002Fno-only-tests",[475,541,542],{},[64,543,546],{"href":544,"rel":545},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Feslint-plugin-unused-imports",[68],[72,547,548],{},"unused-imports\u002Fno-unused-imports",[475,550,551,554,555,554,558],{},[72,552,553],{},"pnpm\u002Fjson-enforce-catalog",", ",[72,556,557],{},"pnpm\u002Fjson-prefer-workspace-settings",[72,559,560],{},"pnpm\u002Fjson-valid-catalog",[61,562,563,564,567,568,571,572,576],{},"이 규칙들은 에디터에서 여전히 ",[393,565,566],{},"리포트","되지만 자동 수정되지 않습니다. 터미널에서 ",[72,569,570],{},"eslint","를 실행하거나 ",[64,573,575],{"href":574},"#lint-staged","Lint Staged","를 통해 실행될 때는 정상적으로 동작합니다.",[61,578,579],{},"동기: 방금 붙여넣은 미사용 import가 에디터 자동 저장 순간 사라져서는 안 됩니다. 에디터와 CLI에서 동일한 동작을 원한다면 opt-out 할 수 있습니다:",[77,581,586],{"className":582,"code":583,"filename":584,"language":585,"meta":82,"style":82},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import pleaseai from '@pleaseai\u002Feslint-config'\n\nexport default pleaseai({\n  isInEditor: false,\n})\n","eslint.config.ts","ts",[72,587,588,612,616,633,649],{"__ignoreMap":82},[86,589,590,594,598,601,605,609],{"class":88,"line":89},[86,591,593],{"class":592},"s7zQu","import",[86,595,597],{"class":596},"sTEyZ"," pleaseai ",[86,599,600],{"class":592},"from",[86,602,604],{"class":603},"sMK4o"," '",[86,606,608],{"class":607},"sfazB","@pleaseai\u002Feslint-config",[86,610,611],{"class":603},"'\n",[86,613,614],{"class":88,"line":95},[86,615,117],{"emptyLinePlaceholder":116},[86,617,618,621,624,628,631],{"class":88,"line":101},[86,619,620],{"class":592},"export",[86,622,623],{"class":592}," default",[86,625,627],{"class":626},"s2Zo4"," pleaseai",[86,629,630],{"class":596},"(",[86,632,92],{"class":603},[86,634,635,639,642,646],{"class":88,"line":107},[86,636,638],{"class":637},"swJcz","  isInEditor",[86,640,641],{"class":603},":",[86,643,645],{"class":644},"sfNiH"," false",[86,647,648],{"class":603},",\n",[86,650,651,654],{"class":88,"line":113},[86,652,653],{"class":603},"}",[86,655,656],{"class":596},")\n",[56,658,575],{"id":659},"lint-staged",[61,661,662,663,666],{},"변경된 파일에 pre-commit 훅으로 ESLint를 실행해서 잘못된 코드가 ",[72,664,665],{},"main","에 도달하지 못하게 하세요:",[77,668,673],{"className":669,"code":670,"filename":671,"language":672,"meta":82,"style":82},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"simple-git-hooks\": {\n    \"pre-commit\": \"bun lint-staged\"\n  },\n  \"lint-staged\": {\n    \"*\": \"eslint --fix\"\n  }\n}\n","package.json","json",[72,674,675,679,696,718,722,734,752,757],{"__ignoreMap":82},[86,676,677],{"class":88,"line":89},[86,678,92],{"class":603},[86,680,681,684,688,691,693],{"class":88,"line":95},[86,682,683],{"class":603},"  \"",[86,685,687],{"class":686},"spNyl","simple-git-hooks",[86,689,690],{"class":603},"\"",[86,692,641],{"class":603},[86,694,695],{"class":603}," {\n",[86,697,698,701,705,707,709,712,715],{"class":88,"line":101},[86,699,700],{"class":603},"    \"",[86,702,704],{"class":703},"sBMFI","pre-commit",[86,706,690],{"class":603},[86,708,641],{"class":603},[86,710,711],{"class":603}," \"",[86,713,714],{"class":607},"bun lint-staged",[86,716,717],{"class":603},"\"\n",[86,719,720],{"class":88,"line":107},[86,721,147],{"class":603},[86,723,724,726,728,730,732],{"class":88,"line":113},[86,725,683],{"class":603},[86,727,659],{"class":686},[86,729,690],{"class":603},[86,731,641],{"class":603},[86,733,695],{"class":603},[86,735,736,738,741,743,745,747,750],{"class":88,"line":120},[86,737,700],{"class":603},[86,739,740],{"class":703},"*",[86,742,690],{"class":603},[86,744,641],{"class":603},[86,746,711],{"class":603},[86,748,749],{"class":607},"eslint --fix",[86,751,717],{"class":603},[86,753,754],{"class":88,"line":126},[86,755,756],{"class":603},"  }\n",[86,758,759],{"class":88,"line":132},[86,760,385],{"class":603},[762,763,764,795,822],"code-group",{},[77,765,770],{"className":766,"code":767,"filename":768,"language":769,"meta":82,"style":82},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add -D lint-staged simple-git-hooks\nbunx simple-git-hooks\n","bun","bash",[72,771,772,788],{"__ignoreMap":82},[86,773,774,776,779,782,785],{"class":88,"line":89},[86,775,768],{"class":703},[86,777,778],{"class":607}," add",[86,780,781],{"class":607}," -D",[86,783,784],{"class":607}," lint-staged",[86,786,787],{"class":607}," simple-git-hooks\n",[86,789,790,793],{"class":88,"line":95},[86,791,792],{"class":703},"bunx",[86,794,787],{"class":607},[77,796,799],{"className":766,"code":797,"filename":798,"language":769,"meta":82,"style":82},"pnpm add -D lint-staged simple-git-hooks\npnpm exec simple-git-hooks\n","pnpm",[72,800,801,813],{"__ignoreMap":82},[86,802,803,805,807,809,811],{"class":88,"line":89},[86,804,798],{"class":703},[86,806,778],{"class":607},[86,808,781],{"class":607},[86,810,784],{"class":607},[86,812,787],{"class":607},[86,814,815,817,820],{"class":88,"line":95},[86,816,798],{"class":703},[86,818,819],{"class":607}," exec",[86,821,787],{"class":607},[77,823,826],{"className":766,"code":824,"filename":825,"language":769,"meta":82,"style":82},"npm install -D lint-staged simple-git-hooks\nnpx simple-git-hooks\n","npm",[72,827,828,841],{"__ignoreMap":82},[86,829,830,832,835,837,839],{"class":88,"line":89},[86,831,825],{"class":703},[86,833,834],{"class":607}," install",[86,836,781],{"class":607},[86,838,784],{"class":607},[86,840,787],{"class":607},[86,842,843,846],{"class":88,"line":95},[86,844,845],{"class":703},"npx",[86,847,787],{"class":607},[61,849,850,851,854],{},"두 번째 명령이 ",[72,852,853],{},".git\u002Fhooks"," 디렉토리에 훅을 연결합니다 — 클론당 한 번만 실행하면 됩니다.",[856,857,858],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":82,"searchDepth":95,"depth":95,"links":860},[861,862,866,867],{"id":58,"depth":95,"text":59},{"id":399,"depth":95,"text":400,"children":863},[864,865],{"id":407,"depth":101,"text":407},{"id":470,"depth":101,"text":470},{"id":511,"depth":95,"text":512},{"id":659,"depth":95,"text":575},"VS Code, Neovim, 에디터 전용 비활성화, lint-staged를 통한 pre-commit 훅.","md",null,{},{"title":28,"description":868},"-eyAwVA8HRTgdliswGcgYmh6PnWB2gfiZZt2SZ887io",[875,877],{"title":24,"path":25,"stem":26,"description":876,"children":-1},"Config Composer, 타입 인지 규칙, command codemod, 플러그인 이름 변경, 버전 정책.",{"title":32,"path":33,"stem":34,"description":878,"icon":35,"children":-1},"PleaseAI 프로젝트를 위한 공유 Prettier 설정.",1776318164113]