彩票走势图

VS Code发布v1.38,发布官方产品图标存储库(下)

翻译|产品更新|编辑:陈津勇|2019-09-10 14:20:46.590|阅读 793 次

概述:Visual Studio Code每月更新一次,现已更新至v1.38。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

VS Code(Visual Studio Code)已成为多语言开发人员的首选文本编辑器。 大量 Javascript、TypeScript、Go、Python 和其它语言的开发人员都在使用 VS Code 进行编码,这部分归功于 VS Code 扩展形成的庞大生态系统。这些扩展增强和丰富了 VS Code 的体验,使其成为类 IDE 的超级智能文本编辑器,同时它又极其快速和轻量级。现已更新至v1.38。以下是最新版更新/修复的内容。(有关本次更新的更多内容,请点击此处查看>>>

点击下载VS Code试用版

语言

HTML和CSS的MDN参考

VS Code现在显示一个指向HTML和CSS实体完成和悬停时相关MDN参考的URL:

我们感谢MDN文档团队努力策划mdn-data/mdn-browser-compat-data并使VS Code能够轻松访问MDN资源。

改善较少的支持

VS Code现在支持许多新的Less.js功能,包括根函数,地图查找和匿名混合。

非标准和过时CSS属性的弃用标记

CSS语言服务器采用了Deprecation标签实验API,并为自动补全中标记为非标准或过时的CSS属性显示了一个Deprecation标记。

TypeScript 3.6

VS Code现在附带TypeScript 3.6.2。这个主要更新带来了一些TypeScript语言改进——包括更严格的生成器和对导入的支持。以及JavaScript和TypeScript的一些新工具特性。与往常一样,这个版本还包含了许多重要的bug修复。

添加缺失等待快速修复

你的代码是否领先一步?新增的“等待”快速修复功能可以帮助您等待在异步代码中可能忽略的值:

此快速修复程序适用于启用了类型检查的 TypeScript和JavaScript源代码。

以分号识别的JavaScript和TypeScript编辑

当您在JavaScript或Typescript源代码中添加导入或应用重构时,VS Code现在会尝试推断是否在文件中包含现有代码的分号:

您可以在添加此功能的pull请求中找到此分号检测的工作原理的详细信息。一些快速修复和重构仍然不能用分号识别,但我们将在未来的更新中努力解决这个问题。

JSDoc注释不再为IntelliSense合并

以前,我们的JavaScript和TypeScript IntelliSense会将多个JSDoc注释组合在一个定义之前。在下面的示例中,请注意该User类型的文档如何与getUser函数的文档合并:

1.png

使用TypeScript 3.6,我们的IntelliSense现在只使用前面的JSDoc注释来获取文档和输入信息:

2.png

源控制

Git:提交输入上的分支名称

现在,当前的Git分支名称出现在提交输入框中,以避免在错误的分支上提交:

Git:按字母顺序对分支列表进行排序

使用Git:Checkout to ...命令检出分支时,有一个新设置git.branchSortOrder可以更改分支的顺序。

Git:支持pull cancel

当启用git时,通过设置supportcancel,您将有机会取消正在进行的Git拉请求,这在从较慢的远程拉取时非常有用。

调试

价值变化时突破(数据断点)

从“变量”视图中,现在可以创建在基础变量的值更改时将被命中的数据断点。与其他断点一样,可以在“断点”视图中禁用/启用和删除数据断点。

请注意,数据断点需要底层运行时或调试器的特定支持,我们希望将来只有少数调试扩展(如C ++和C#,而不是Node.js)可以选择加入此功能。对于此版本,只有我们的示例调试器模拟调试 “ 模拟 ”数据断点。

调用堆栈视图改进

我们对Call Stack视图做了一些改进,最值得注意的是:

  • 当调试会话只有一个线程时,我们将始终隐藏线程并直接显示调用堆栈。

  • 单击“调用堆栈”视图中的线程和调试会话不再展开/折叠它们。只有明确点击twistie才会进行扩展。这种变化的原因在于,在不进行不必要的扩展的情况下更改焦点会话非常繁琐。在Outline视图中可以看到相同的行为。

  • 以前,当有一个新的调试会话时,Debug视图将获得焦点。现在,只有会话实际中断时,Debug视图才会获得焦点。

  • 当实际存在该会话的线程时,调试会话元素仅显示两次。

启动调试目标的新shell设置

当在集成终端中启动调试目标时,VS  Code现在考虑了新的“自动化shell”设置(Terminal.Integrated.automationshell…)。如果在启动调试目标时使用集成终端的特定默认shell(例如,tmux),则该设置非常有用。

"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script"

"terminal.integrated.automationShell.osx": "bash",

对扩展的贡献

帮助webview扩展添加内容安全策略

我们已经确定了一些创建没有内容安全策略的webview的扩展。虽然这并不是一个迫在眉睫的问题,但所有webview都应该将内容安全策略作为一种良好的安全性最佳实践。在这次迭代中,我们已经开始针对这些扩展展开讨论。

GitHub拉请求

这个里程碑我们继续致力于改进GitHub Pull Requests扩展,包括错误修复和合并拉取请求后删除分支和远程等功能。

远程开发(预览)

远程开发扩展的工作仍在继续,它允许您将容器,远程计算机或Windows子系统Linux(WSL)用作功能齐全的开发环境。

为了帮助您开始使用远程开发扩展,有三个分步教程:

  • Containers——在Docker容器中运行Visual Studio Code。

  • 通过SSH远程——使用Visual Studio Code通过SSH连接到远程和虚拟机。

  • 在WSL中工作——在Windows子系统Linux中运行Visual Studio Code。

扩展创作

VS Code图标存储库

我们已经发布了所有VS代码图标的存储库,供扩展作者使用。每个图标都有深色/浅色版本,我们还链接到Figma设计文件。

Webview.asWebviewUri和Webview.cspSource

网络视图有两个新属性:

  • Webview.asWebviewUri——将本地文件系统的URI转换为可在webview中使用的URI。

    对于桌面VS Code,这会将file:URI转换为vscode-resource:URI。

  • Webview.cspSource——webview资源的内容安全策略源。

    对于桌面VS Code,这将是字符串vscode-resource:。

const panel = vscode.window.createWebviewPanel(CatCodingPanel.viewType, 'Cat Coding', vscode.ViewColumn.One, {
    // Restrict the webview to only loading local content from our extension's `media` directory.
    localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
});

const imagePath = vscode.Uri.file(path.join(extensionPath, 'media'));

panel.html = `                Cat Coding    `

在没有内容安全策略的情况下创建webview时发出警告

现在,在开发使用Webview API的扩展时,我们会在您创建未设置内容安全策略的Web视图时记录警告。

webview-csp-warning.png

所有webview(即使是非常简单的)都应该设置一个内容安全策略。这有助于限制内容注入的潜在影响,通常是深入防御的好方法。

特定机器的重写的设置

现在,您可以使用范围machine-overridable定义一个特定于机器的设置,该设置可以在工作区和文件夹级别上覆盖。

"configuration": {
  "title": "My Extension Settings",
  "properties": {
   "myextension.libPath": {
      "type": [
        "string",
        "null"
      ],
      "markdownDescription": "Specify the path to the library.",
      "default": null,
      "scope": "machine-overridable"
    }
  }
}

在自定义树视图中进行多选

通过createTreeView生成的树现在可以将canSelectMany选项添加到TreeViewOptions。这允许在贡献的树视图中进行多选,并使运行在树元素上的命令在第二个命令参数中以数组的形式接收所有选中的树元素。

markdown.api.render

markdown.api.render来自VS Code的内置Markdown扩展的新命令采用stringMarkdown或a vscode.TextDocument并将呈现的Markdown作为HTML返回:

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
  vscode.commands.executeCommand('markdown.api.render', '# Hello Markdown').then(result => {
    console.log(`rendered markdown: ${result}`);
  });
}

日志:

rendered markdown: Hello Markdown

自定义数据标记为稳定

在2019年1月1.31版本中作为实验性功能引入的自定义数据格式现在标记为稳定。

  • html.experimental.customData- 此设置已弃用并被html.customData取代。

  • css.experimental.customData- 此设置已弃用并被css.customData取代。

  • contributes.html.experimental.customData- 此贡献点已弃用并被contributes.html.customData取代。

  • contributes.css.experimental.customData- 此贡献点已弃用并被contributes.css.customData取代。

不推荐使用的workspace.rootPath

很久以前,我们添加了对多根工作空间的支持,并弃用了API workspace.rootPath,并支持workspace.workspaceFolders和workspace.getWorkspaceFolder。我们注意到许多扩展仍然使用此API,即使它在多根工作空间中无法正常工作。如果您拥有使用此API的扩展程序,请更新它,因为将来此API可能被删除。

语言服务器协议

流媒体和进度报告支持已添加到语言服务器协议的下一版本中。拟议实现服务器和客户端都可以作为vscode-languageserver@5.3.0-next.10和vscode-languageclient@5.3.0-next.9分别。

调试适配器协议

完成提案的改进

调试适配器现在可以使用新功能completionTriggerCharacters来通知前端UI应该使用的字符来触发REPL或调试控制台中的完成提议UI。如果未指定,则前端UI应使用“.” 用于触发提案UI的字符。

此外,我们还向CompletionItem类型添加了一个可选的sortText属性。使用此属性,调试适配器可以控制前端UI如何对适配器返回的完成建议进行排序。如果缺少属性,前端可以根据label属性对项进行排序。

修正了DAP JSON模式中的一个类型问题

在调试适配器协议JSON模式中,我们将类型说明符number的使用更改为integer,用于那些浮点类型没有意义的地方,例如对于id。

建议的扩展API

每个里程碑都附带新的API,扩展作者可以试用它们。一如既往,我们热衷于您的反馈。这是您提出的API所必须做的事情:

  • 必须使用Insiders,因为建议的API经常更改。

  • 必须在package.json扩展程序的文件中包含以下行:"enableProposedApi": true。

  • 将最新版本的vscode.proposed.d.ts文件复制到项目中。

请注意,您无法发布使用建议API的扩展程序。我们可能会在下一个版本中进行重大更改,但绝不会破坏现有的扩展。

符号和完成的弃用标签

完成和文档/工作区符号的API现在支持将项目标记为已弃用。完成和符号具有一个新的可选属性tags,它是一组CompletionItemTags或SymbolTags。今天,仅支持弃用,但有计划添加更多标签,例如访问修饰符和其他修饰符的标签。

下面的代码段显示了一个最小完成项提供程序,该提供程序呈现标记为已弃用的项。

vscode.languages.registerCompletionItemProvider('plaintext', {
  provideCompletionItems() {
    const item = new vscode.CompletionItem("deprecated_completion");
    item.tags = [vscode.CompletionItemTag.Deprecated];
    return [item];
  }
});

显示已弃用的完成符号或符号时,会在名称中呈现删除线,项目会略微变暗,并且不会突出显示:

Pseudoterminal.onDidClose现在接受一个数字

建议Pseudoterminal.onDidClose已从a Event

已弃用的建议终端API已删除

不推荐使用的TerminalOptions.runInBackground和createTerminalRendererAPI已经被删除。如果你需要迁移它们,应该分别使用TerminalOptions.hideFromUser(稳定)和ExtensionTerminalOptions(建议)。

新命令

我们现在公开了用于在编辑器、集成终端、扩展详细信息视图和Web视图中在“查找”控件中导航搜索结果的命令。

QQ截图20190910140235.png

值得注意的修复

  • 26012:自动插入parens与完成不能很好地交互,导致重复的字符

  • 47292:扩展无法访问由任务创建的诊断

  • 73884:Linux:从FTP连接打开文件显示为空

  • 75054:macOS简单全屏再次正常工作

  • 77293:在提供的debugconfigurations和resolveDebugConfigurations中使用CancelationToken来取消调试

  • 77735:如果稍后存在RenameFile,则 workspace.applyEdit将删除TextEdit

  • 77747:文件名$(xx)视图中显示不正确的文件名

  • 77990:从TS / JS文件开始,文件比打开其他文件慢得多

  • 77996:文件>另存为将光标移动到文件的开头

  • 78147:配置任务操作应显示新添加的任务并将光标定位在那里

  • 78179:使用类型过滤器调用'tasks.fetchTask()'可以获取所有任务

  • 79478:在markdown文件中突出显示自定义html标记

  • 79704:@example <caption>JSDoc 支持


  • 79763:编辑:可以关闭所有编辑

  • 79798:编辑器:未使用workbench.editor.revealIfOpen激活组:true

  • 78046:SCM:支持为新文件暂存所选更改

  • 79625:为“preLaunchTask”结构提供代码补全



想要获得 Visual Studio 更多资源的伙伴,请点这里。

想要获取 Visual Studio 正版授权的伙伴,


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP