【问题标题】:Visual Studio Javascript formatting ignoring my settingsVisual Studio Javascript 格式忽略我的设置
【发布时间】:2020-02-12 05:03:39
【问题描述】:

不知何故,周一,我的 VS2017 开始在 this SO post 中突出显示错误,并且所有 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

令人恼火的是已经工作了好几个月,昨天才停止,没有任何设置更改。

编辑以添加 Intellisense 错误:

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\3.1\tsserver.js:16674:110)
    at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:16508:26)
    at Object.parseJsonText (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:16330:23)
    at ProjectService.loadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:120258:33)
    at ProjectService.createAndLoadConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:120247:22)
    at ProjectService.createLoadAndUpdateConfiguredProject (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:120251:36)
    at ProjectService.openClientFileWithNormalizedPath (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:120776:44)
    at ProjectService.applyChangesInOpenFiles (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:120882:30)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:121548:46)
    at C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:123063:88
    at IOSession.Session.executeWithRequestId (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:123054:28)
    at IOSession.Session.executeCommand (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:123063:33)
    at IOSession.Session.onMessage (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1\tsserver.js:123083:35)
    at Interface.<anonymous> (C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.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)

【问题讨论】:

    标签: visual-studio visual-studio-2017 intellisense


    【解决方案1】:

    禁用新的语言服务。

    1.禁用JavaScript Language Service后,使用Developer command prompt中的以下命令设置选项:

    CD %VSINSTALLDIR%
    
    vsregedit set . HKCU "ApplicationPrivateSettings\TextEditor\JavaScript\Specific" "PlaceOpenBraceOnNewLineForControlBlocks" string "0*System.Int32*1"
    

    this

    启用新的语言服务。

    2.尝试创建一个新项目(也许你在node.js项目中?)检查类似的问题是否仍然存在,如果这个问题消失了,可能是你的问题的原因现在你的项目包含太多的JS文件。请在此处查看limitation

    如果问题仍然存在于新项目中,请修复 VS 或将 VS2017 更新到最新的 15.9.16 以检查是否有帮助。我猜你的环境有问题。

    另外,关闭VS后尝试删除解决方案目录中隐藏的.vs文件夹clean the VS cache并重启VS。

    【讨论】:

    • 你是救生员!我有最新版本,但删除 .vs 文件夹和 VS 缓存就可以了!谢谢!
    • 很高兴知道它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2023-02-17
    • 2017-05-21
    • 2012-11-28
    相关资源
    最近更新 更多