language-tools icon indicating copy to clipboard operation
language-tools copied to clipboard

Format on save removes defineProps if lang="ts"

Open bartduisters opened this issue 1 year ago • 1 comments

Volar version: v1.8.15 - v1.8.27

Steps to reproduce

  • Have a .vue file which uses script setup and TypeScript
  • Use Volar version v1.8.15 - v1.8.27
  • Use 'format on save' (Prettier as formatter)

Actual behavior

Before save

<script setup lang="ts">
defineProps();
</script>

After save

<script setup lang="ts">

</script>

It removes defineProps(); after saving (which triggers format on save).

Expected behavior Before save

<script setup lang="ts">
defineProps();
</script>

After save

<script setup lang="ts">
defineProps();
</script>

It does not remove defineProps(); after saving (which triggers format on save).

Workarounds

  • Remove lang="ts" (not really an option)
  • Use version Volar v1.8.14 - this behavior does not occur in versions prior to v1.8.15

bartduisters avatar Dec 31 '23 13:12 bartduisters

Installing https://marketplace.visualstudio.com/items?itemName=Vue.volar also resolves the issue.

bartduisters avatar Apr 21 '24 16:04 bartduisters

Please check if this issue has been resolved in version 2.x. If not, feel free to create a new one.

davidmatter avatar Jul 07 '24 13:07 davidmatter