У меня есть файл vue, составленный следующим образом (не очень важно):
<template>
//some pseudo-html
</template>
<script>
//some javascript
</script>
<style lang='stylus'>
@import '~variables'
.card
cursor pointer
//some more stylus
</style>
В VSCode активирован formatOnSave
, у меня также установлены vetur и esLint.
КогдаЯ использую код CSS внутри классического тега <style>
, у меня нет проблем, но когда я использую lang='stylus'
, ESLint все еще ищет CSS (я получаю синтаксические ошибки, такие как [css] { expected (css-lcurlyexpected)
).
Также,автоформат при сохранении просто испортит все, когда я использую стилус, он помещает все в одну строку.Результат после сохранения:
<style lang='stylus'>
@import '~variables'
.card cursor pointer position relative padding //some more stylus
</style>
Я пытался изменить настройки followinf в vscode:
vetur.format.defaultFormatter.css
vetur.format.defaultFormatter.stylus
, но безрезультатно.
Мои текущие настройки:
{
"workbench.colorTheme": "FlatUI Immersed",
"workbench.iconTheme": "material-icon-theme",
"files.trimTrailingWhitespace": true,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.detectIndentation": false,
"editor.formatOnPaste": false,
"editor.formatOnType": true,
"editor.renderControlCharacters": true,
"editor.renderWhitespace": "all",
"editor.minimap.enabled": false,
"editor.mouseWheelScrollSensitivity": 2,
"editor.tabSize": 4,
"editor.fontSize": 15,
"window.zoomLevel": -1,
"workbench.startupEditor": "newUntitledFile",
"markdown.extension.preview.autoShowPreviewToSide": true,
"markdown.preview.breaks": true,
}
И настройки, специфичные для рабочей области:
"settings": {
"files.associations": {
"*.vue": "html"
},
"editor.tabSize": 2,
"editor.formatOnSave": true,
// Defines space handling before function argument parentheses. Requires TypeScript >= 2.1.5.
"typescript.format.insertSpaceBeforeFunctionParenthesis": true,
// Defines space handling before function argument parentheses. Requires TypeScript >= 2.1.5.
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
// Eslint options
"eslint.enable": true,
"eslint.options": {
"extensions": [
".html",
".js",
".vue",
".jsx"
]
},
// An array of language ids which should be validated by ESLint
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "html",
"autoFix": true
}
],
// Run the linter on save (onSave) or on type (onType)
"eslint.run": "onSave",
// Turns auto fix on save on or off.
"eslint.autoFixOnSave": true,
}
Было бы совершенно замечательно, если бы кто-то знал, как правильно использовать форматтер и линтер, принимая это во внимание, но после 2 часов копания я бы честно согласился на способ отключить форматтер и линтер только для тега <style>
.