TypeScript 忽略非ts/js文件,转到文件重构

cyvaqqii  于 6个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(44)

🔍 搜索词

移动到文件,具有未知扩展名。

✅ 可可行性检查清单

⭐ 建议

getMoveToRefactoringFileSuggestions 中,使用 tryGetExtensionFromPath 对要移动到的候选文件进行过滤,并忽略未知的文件扩展名。如果可以回退或切换到使用 SourceFile.scriptKindSourceFile.isDeclarationFile,但至少对于候选项忽略未知扩展名是可以接受的。

📃 激励示例

"Move to file"重构目前会在程序包含任何未知于TypeScript的源文件的文件扩展名时出错。是否有可能去除这个限制?错误是因为 getMoveToRefactoringFileSuggestions 方法使用 extensionFromPath 函数从程序中的所有文件中查找候选项。如果任何TypeScript插件提供具有非ts/js文件扩展名的外部文件,这将导致 Debug.assert 错误。例如, mrmckeb/typescript-plugin-css-modules#241。大多数其他语言服务功能都没有这个限制。至少当程序中有外部文件时,它不会出错。如果这个功能可以与其他文件扩展名一起工作,甚至允许在 Package TypeScript语言服务的其它语言服务器中使用这个功能,那就太好了。

💻 用例

  • 你打算用这个做什么?

在项目中使用移动到文件重构,其中TypeScript插件添加了一个自定义模块,如vue和svelte。

  • 我想到的解决方法

TypeScript插件在调用 getMoveToRefactoringFileSuggestions 之前对其进行猴子补丁,然后在之后恢复它。

ruyhziif

ruyhziif1#

感谢提出这个问题的@jasonlyu123!
到目前为止,我只有这两个关于这个问题的报告,@RyanCavanaugh和@navya9singh,但是如果在插件方面我能做些什么来减轻这个问题,请告诉我!

xxhby3vn

xxhby3vn2#

在使用VSCode的Astro和MDX扩展时,我经常遇到这个问题。除了在运行重构之前禁用这些扩展之外,还有其他解决方法吗?

b1payxdu

b1payxdu3#

需要它。我相信这种情况在Vue项目中会经常发生。

相关问题