Visual Studio Javascript 格式化忽略我的设置
Visual Studio Javascript formatting ignoring my settings
周一,不知为何,我的 VS2017 开始出现 中突出显示的错误,所有 JS Intellisense 和自动格式化都消失了。
设法通过关闭 Enable the new JavaScript language service
来修复它,但现在自动格式化忽略了我的设置;内部样式是在函数后的换行符上大括号,这是已设置的,但 Ctrl-E-D 重新格式化现在将所有大括号移动到与函数定义相同的行。
我该如何解决这个问题?
编辑:我发现这个旧线程有相同的问题,但遗憾的是新语言服务没有修复:https://developercommunity.visualstudio.com/content/problem/138728/if-statements-still-place-a-opening-brace-on-the-s.html
令人恼火的是,它已经工作了好几个月了,昨天才停止,没有任何设置更改。
编辑以添加智能感知错误:
The JavaScript and TypeScript language service has been disabled due to an error. You may see reduced IntelliSense support for your project. Please try reloading your solution to reenable the language service.
Error processing request. Cannot read property 'length' of undefined
TypeError: Cannot read property 'length' of undefined
at createSourceFile (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16674:110)
at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16508:26)
at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16330:23)
at ProjectService.loadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120258:33)
at ProjectService.createAndLoadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120247:22)
at ProjectService.createLoadAndUpdateConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120251:36)
at ProjectService.openClientFileWithNormalizedPath (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120776:44)
at ProjectService.applyChangesInOpenFiles (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120882:30)
at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:121548:46)
at C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123063:88
at IOSession.Session.executeWithRequestId (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123054:28)
at IOSession.Session.executeCommand (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123063:33)
at IOSession.Session.onMessage (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123083:35)
at Interface.<anonymous> (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:124346:27)
at Interface.emit (events.js:182:13)
at Interface._onLine (readline.js:290:10)
at Interface._normalWrite (readline.js:433:12)
at Socket.ondata (readline.js:149:10)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at Pipe.onread (net.js:638:20)
With new language service disabled.
1.After 您已禁用 JavaScript Language Service
,请使用 Developer command prompt 中的以下命令设置选项:
CD %VSINSTALLDIR%
vsregedit set . HKCU "ApplicationPrivateSettings\TextEditor\JavaScript\Specific" "PlaceOpenBraceOnNewLineForControlBlocks" string "0*System.Int32*1"
参见this。
With new language service enabled.
2.Try 创建一个新项目(也许你在 node.js 项目中?)检查类似的问题是否仍然存在,如果这个问题消失了,也许你的问题的原因现在是你的项目包含过多的 JS 文件。请参阅此处的 limitation。
如果在新项目中问题仍然存在,修复VS或更新VS2017至最新的15.9.16以查看是否有帮助。我猜你的环境中有什么东西坏了。
另外,关闭 VS 后,尝试删除解决方案目录中隐藏的 .vs
文件夹,clean the VS cache 并重新启动 VS。
周一,不知为何,我的 VS2017 开始出现
设法通过关闭 Enable the new JavaScript language service
来修复它,但现在自动格式化忽略了我的设置;内部样式是在函数后的换行符上大括号,这是已设置的,但 Ctrl-E-D 重新格式化现在将所有大括号移动到与函数定义相同的行。
我该如何解决这个问题?
编辑:我发现这个旧线程有相同的问题,但遗憾的是新语言服务没有修复:https://developercommunity.visualstudio.com/content/problem/138728/if-statements-still-place-a-opening-brace-on-the-s.html
令人恼火的是,它已经工作了好几个月了,昨天才停止,没有任何设置更改。
编辑以添加智能感知错误:
The JavaScript and TypeScript language service has been disabled due to an error. You may see reduced IntelliSense support for your project. Please try reloading your solution to reenable the language service.
Error processing request. Cannot read property 'length' of undefined
TypeError: Cannot read property 'length' of undefined
at createSourceFile (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16674:110)
at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16508:26)
at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:16330:23)
at ProjectService.loadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120258:33)
at ProjectService.createAndLoadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120247:22)
at ProjectService.createLoadAndUpdateConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120251:36)
at ProjectService.openClientFileWithNormalizedPath (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120776:44)
at ProjectService.applyChangesInOpenFiles (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:120882:30)
at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:121548:46)
at C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123063:88
at IOSession.Session.executeWithRequestId (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123054:28)
at IOSession.Session.executeCommand (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123063:33)
at IOSession.Session.onMessage (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:123083:35)
at Interface.<anonymous> (C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsserver.js:124346:27)
at Interface.emit (events.js:182:13)
at Interface._onLine (readline.js:290:10)
at Interface._normalWrite (readline.js:433:12)
at Socket.ondata (readline.js:149:10)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at Pipe.onread (net.js:638:20)
With new language service disabled.
1.After 您已禁用 JavaScript Language Service
,请使用 Developer command prompt 中的以下命令设置选项:
CD %VSINSTALLDIR%
vsregedit set . HKCU "ApplicationPrivateSettings\TextEditor\JavaScript\Specific" "PlaceOpenBraceOnNewLineForControlBlocks" string "0*System.Int32*1"
参见this。
With new language service enabled.
2.Try 创建一个新项目(也许你在 node.js 项目中?)检查类似的问题是否仍然存在,如果这个问题消失了,也许你的问题的原因现在是你的项目包含过多的 JS 文件。请参阅此处的 limitation。
如果在新项目中问题仍然存在,修复VS或更新VS2017至最新的15.9.16以查看是否有帮助。我猜你的环境中有什么东西坏了。
另外,关闭 VS 后,尝试删除解决方案目录中隐藏的 .vs
文件夹,clean the VS cache 并重新启动 VS。