Skip to content

When saving with the cursor before a word, the first letter gets swallowed. #783

@seepine

Description

@seepine

This project create by pnpm create vue@latest and add eslint-plugin-prettier.
And i remove pluginPrettier from eslint.config.ts, it can work, although it doesn't follow Prettier's formatting.

eslint.config.ts

import { globalIgnores } from 'eslint/config'
import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'
import pluginVue from 'eslint-plugin-vue'
import pluginVitest from '@vitest/eslint-plugin'
import pluginOxlint from 'eslint-plugin-oxlint'
import pluginPrettier from 'eslint-plugin-prettier/recommended'

export default defineConfigWithVueTs(
  {
    name: 'app/files-to-lint',
    files: ['**/*.{vue,ts,mts,tsx}'],
  },

  globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),

  ...pluginVue.configs['flat/essential'],
  vueTsConfigs.recommended,

  {
    ...pluginVitest.configs.recommended,
    files: ['src/**/__tests__/*'],
  },

  ...pluginOxlint.buildFromOxlintConfigFile('.oxlintrc.json'),

  // Just add this
  // After removing it, the issue of words being swallowed upon saving no longer occurs.
  pluginPrettier,
)

.oxlintrc.json

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["eslint", "typescript", "unicorn", "oxc", "vue"],
  "env": {
    "browser": true
  },
  "categories": {
    "correctness": "error"
  }
}

.vscode/settings.json

{
  "editor.codeActionsOnSave": {
    "source.fixAll": "explicit"
  }
}

package.json

{
  "devDependencies": {
    "@alova/wormhole": "^1.5.0",
    "@iconify/json": "^2.2.435",
    "@tsconfig/node24": "^24.0.4",
    "@types/jsdom": "^27.0.0",
    "@types/lodash-es": "^4.17.12",
    "@types/node": "^24.10.9",
    "@unocss/eslint-config": "^66.6.0",
    "@vitejs/plugin-vue": "^6.0.3",
    "@vitejs/plugin-vue-jsx": "^5.1.3",
    "@vitest/eslint-plugin": "^1.6.6",
    "@vue/eslint-config-typescript": "^14.6.0",
    "@vue/test-utils": "^2.4.6",
    "@vue/tsconfig": "^0.8.1",
    "eslint": "^9.39.2",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-oxlint": "~1.46.0",
    "eslint-plugin-prettier": "^5.5.5",
    "eslint-plugin-vue": "~10.7.0",
    "jiti": "^2.6.1",
    "jsdom": "^27.4.0",
    "naive-ui": "^2.43.2",
    "npm-run-all2": "^8.0.4",
    "oxlint": "~1.47.0",
    "prettier": "~3.8.1",
    "sass": "^1.97.3",
    "sass-loader": "^16.0.6",
    "typescript": "~5.9.3",
    "unocss": "^66.6.0",
    "unplugin-auto-import": "^21.0.0",
    "unplugin-vue-components": "^31.0.0",
    "unplugin-vue-router": "^0.19.2",
    "vite": "^7.3.1",
    "vite-plugin-vue-devtools": "^8.0.5",
    "vitest": "^4.0.18",
    "vue-tsc": "^3.2.4"
  }
}
2026-02-13.19.47.11.mov

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions