IDEA 2024.3正式版发布,速览新功能!

0 前言

IntelliJ IDEA 2024.3 引入了一系列可以提升您的开发体验的强大新功能。 IDE 现在提供代码逻辑结构的表示,简化了 Kubernetes 应用程序的调试体验,引入了集群范围的 Kubernetes 日志访问。

1 关键亮点

1.1 Structure工具窗口中的 Logical代码结构

不仅可查看类、方法和字段,还可查看项目中组件之间的链接和交互。 例如,在 Spring Boot 应用程序中打开控制器时,您可以看到其端点和自动装配的应用程序组件。 这种增强型视图可以:

  • 帮助理解项目结构
  • 让您可跟踪代码用法和有意义的连接来浏览项目

1.2 改进的 Kubernetes 应用程序调试体验

进一步简化了 Kubernetes 应用程序的调试。 只需点击 Debug(调试)按钮旁边的省略号并选择 Add Tunnel for Remote Debug(为远程调试添加隧道)即可激活隧道调试。 这使您的工作站成为 Kubernetes 集群的虚拟部分,这样一来,您可以交换 pod 并使用您喜欢的工具在本地调试微服务。 其他微服务将与您的工作站交互,就好像它是您正在调试的 pod 一样,并包含对集群其余部分的完全访问。 即使非 Kubernetes 感知的调试器也能完美运行。 此外,Kubernetes UI 中 Services(服务)工具窗口下新的 Forward Ports(转发端口)部分可以简化端口转发。

1.3 Kubernetes 集群日志

IntelliJ IDEA 现在提供具有流式传输和模式匹配功能的集群范围 Kubernetes 日志访问 – 这是开发者以及 DevOps 和 SRE 团队的必备工具。 这项功能提供跨 pod、节点和服务的所有事件的集中视图,帮助您快速发现问题,而无需手动检查每个日志。 实时流式传输可以实现即时诊断,而模式匹配可以自动检测关键事件和错误,例如内存不足问题或异常网络活动。 阅读这篇博文详细了解此功能以及使用方法。

2 AI Assistant

img

内联 AI 提示

IntelliJ IDEA 2024.3 引入了内联 AI 提示,提供了直接在编辑器中与 AI Assistant 交互的无缝途径。 您可以用自然语言输入请求,AI Assistant 会立即分析并将其转换为代码更改,在装订区域用紫色标记以便跟踪。 内联 AI 提示具有上下文感知功能,可以自动包含相关文件和符号,从而更准确地生成代码。 此功能支持 Java、Kotlin、Scala、Groovy、JavaScript、TypeScript、Python、JSON 和 YAML 文件格式,并且可供所有 AI Assistant 订阅者使用。

img

改进的上下文管理

在此更新中,对于 AI Assistant 在其建议中考虑的上下文,我们使其管理更加透明和直观。 改进的 UI 可让您查看和管理作为上下文包含的每个元素,提供完全的可见性和控制。 现在,打开的文件以及其中选择的代码都会自动添加到上下文中,您可以根据需要轻松添加或移除文件,自定义上下文以适合您的工作流。 此外,您还可以附加项目范围的指令来指导 AI Assistant 在整个代码库中的响应。

img

选择聊天模型提供商的选项

现在,您可以选择自己喜欢的 AI 聊天模型,例如 Google Gemini、OpenAI 或您机器上的本地模型。 有了更多选择,您可以自定义 AI 聊天的响应以适合您的具体工作流,享受适应性更强的个性化体验。

3 Java

常量条件中的改进

在 2024.3 版本中,IntelliJ IDEA 的数据流引擎可以更准确地处理别名情况,有助于减少检查中的误报,带来更可靠的编码体验。 此增强可以改进引用可能指向同一实例时的分析。

img

Java 代码格式化程序改进

IntelliJ IDEA 的代码格式化程序现在允许您在注解和字段声明之间保留空行,这是 JPA 实体中常用的样式,可以提高可读性。 此前,格式化程序默认会移除这些行。 控制此行为的新选项位于 Settings | Editor | Code Style | Java | Blank Lines(设置 | 编辑器 | 代码样式 | Java | 空行)下。

4 用户体验

img

索引编制期间的拼写和语法检查

基于 2024.2 版本取得的进展,我们增加了项目模型构建和索引编制期间可用的关键功能的数量。 在 2024.3 版本中,拼写和语法检查在索引编制期间也可运行。 这样,您无需等待索引编制完成即可捕获错误,例如 Markdown 文档和文档标记中的错误。

img

Run(运行)微件:同时启动多个配置的选项

借助更新后的 Run(运行)微件,您可以按住 Ctrl 并点击弹出窗口中的 Debug(调试)图标,同时启动多个配置。 另外,此微件还会显示所有运行中配置的控件,提供清晰的状态概览并简化管理。

img

提高的默认标签页上限

我们将编辑器中的默认标签页上限提高到了 30 个。 这意味着在 IDE 开始关闭最近使用最少的标签页之前,您现在可以保留更多标签页。 您可以在 Settings | Editor | General | Editor Tabs(设置 | 编辑器 | 常规 | 编辑器标签页)中控制此设置。

  • img
  • img
  • img
  • img
  • img
  • img

优化的 Rename(重命名)操作位置

我们优化了 Rename(重命名)操作在编辑器和 Project(项目)工具窗口中的元素上调用时在上下文菜单中的位置。 此操作现在位于顶层,方便经常使用鼠标的用户快速重命名文件、变量和其他元素。

  • img
  • img
  • img
  • img
  • img
  • img

高亮显示所选文本的所有匹配项

默认情况下,IntelliJ IDEA 现在会自动高亮显示您在文件中选择的文本的所有实例。 这使得跟踪所选文本在整个代码中出现的位置更加简单。 如果您更喜欢此前的行为,您可以在 Settings | Editor | General | Appearance(设置 | 编辑器 | 常规 | 外观)中禁用此功能。

img

消息和 i18n 文件的新图标

通过新的专属图标,我们使消息和 i18n 文件更易区分。 此更新可以帮助您快速定位和管理项目中的本地化文件,使其更容易与配置文件区分。

  • img
  • img
  • img
  • img
  • img
  • img

Java 源根更新的 New(新建)弹出窗口

用于将文件添加到 Java 源根的 New(新建)弹出窗口现在仅显示最相关的选项,减少了混乱并简化了您的工作流。 如果您更喜欢此前的扩展模板列表,您可以转到 Settings | Advanced Settings | Java(设置 | 高级设置 | Java)轻松恢复。

img

JSON、XML 和 YAML 文件的浮动工具栏

我们为 JSON、XML 和 YAML 文件启用了浮动工具栏,使访问基于上下文和 AI 驱动的操作更加简单。 选择任意一段代码,工具栏就会出现可用操作。

5 终端

img

新终端改进 Beta

新终端现在提供增强的命令处理,其 UI 的对齐也得到改进,营造出更流畅、更直观的体验。 现在,终端的响应速度更快,处理提示的速度也更快。 会话现在可以无缝切换,并且各标签页的状态保持一致,确保工作流不会中断。 自动补全可以更快访问命令名称、标志和路径,帮助减少手动输入。 我们还引入额外自定义选项,包括提示样式、会话名称和环境变量,让您更好地控制终端环境。

6 版本控制系统

img

拉取与合并请求的标题和描述生成

现在,AI Assistant 可以帮助您直接从 IDE 为拉取与合并请求生成准确的标题和描述,从而简化您的工作流并确保您的描述清晰直观。

img

Find in Files(在文件中查找)的更新

Find in Files(在文件中查找)功能得到增强,增加了新的搜索范围 Project Files Excluding Git-Ignored(项目文件,不包括 Git 忽略的文件)。 此选项将从搜索结果中排除 .gitignore 文件中忽略的任意文件,帮助您在项目中搜索时只关注相关代码。

img

禁用后台预提交检查的选项

现在,您可以使用 Settings | Version Control | Commit(设置 | 版本控制 | 提交)下的新选项 Run advanced checks after a commit is done(提交完成后运行高级检查)在提交过程中管理后台检查。 通过此设置,您可以决定是否在提交后运行测试和检查。 如果您希望在提交之前完成这些检查,将其禁用即可。

img

Welcome(欢迎)屏幕上的分支名称

Welcome(欢迎)屏幕现在会显示分支名称,帮助您在处理多个项目版本时保持整齐,并在工作目录之间轻松切换。

7 调试器

img

HotSwap 功能增强的用户体验

我们使 HotSwap 功能的使用更加简单直观。 此功能允许您在调试会话期间重新加载修改后的类,无需重新启动应用程序。 现在,当您使用有效的调试器会话编辑代码时,IntelliJ IDEA 会自动检测更改并提示您通过编辑器中方便的按钮重新加载。 这样可以实时更新代码,简化开发流程。 请记住,HotSwap 有一些限制,特别是在结构更改方面。 您可以在此处了解详情。

img

创建异常断点的意图操作

现在,您可以从编辑器设置异常断点。 在抛出或捕获点,通过 macOS 上的 ⌥↩ 或 Windows/Linux 上的 Alt+Enter 打开上下文菜单,然后选择 Enable exception breakpoint(启用异常断点)。 此新功能使异常断点的设置更加方便,因为您不需要打开 Breakpoints(断点)对话框或在控制台中浏览堆栈跟踪。

img

行执行时间提示

当您想要测量大量代码行的执行时间时,IntelliJ IDEA 2024.3 让您无需使用日志和计时器干扰代码。 调用 Run to Cursor(运行到光标)操作后,您将在编辑器的装订区域中看到每行的执行时间。 要进行更深入的分析,可以使用装订区域中的相同提示深入到被调用的方法,其对应行也将附带执行时间数据。

img

异步代码的合并堆栈跟踪

IntelliJ IDEA 2024.3 解决了异步代码故障排查的挑战,其中任务在一个线程中调度,在另一个线程中执行,每一个都维护自己的堆栈跟踪。 现在,IDE 会在控制台中打印合并的堆栈跟踪,而不仅仅是工作线程的堆栈跟踪,从而使执行流更易跟踪。 此增强默认对测试启用。

8 分析器

img

堆内存使用情况

分析器已通过堆内存使用情况图得到增强,此图显示在线程通道上方的 Timeline(时间线)标签页中。 这种新的可视化可以帮助您将内存分配与线程活动链接起来,提供有价值的洞察,揭示潜在的内存泄漏和性能瓶颈。

9 构建工具

img

多模块项目的更快编译

在 IntelliJ IDEA 2024.3 中,我们将并行编译设为默认。 在过去的版本中,一次只能编译一个项目模块,这对于大型项目来说并不是最快的方式。 现在,IDE 编译的所有基于 Maven 的项目的编译时间都将更快,并且 CPU 和内存消耗也已得到优化。

img

不可信 SSL 证书的无缝处理

IntelliJ IDEA 现在会在 Maven 同步和构建期间自动检测 SSL 相关问题。 如果原因是证书不可信,IDE 将通过信任证书来解决这个问题,无需手动操作。 此更新消除了通过日志查找隐秘的 SSL 错误的猜测工作,并且无需在 JDK 的信任库中进行繁琐的手动证书管理。

对 Maven 的拆分本地仓库的支持

我们新增了对 Maven 的拆分本地仓库的全面支持,这是 Maven 3.9 中引入的一项功能。 它允许您根据需要分离本地仓库。 您可以按远程仓库对其分组,将本地安装的工件存储在专属文件夹中,甚至使用专门的前缀按分支对工件进行分类。 此前,在 Maven 中启用拆分仓库可能导致 IntelliJ IDEA 中的同步失败,引发构建或依赖项问题。 现在,全面支持可以确保流畅的同步和高效的仓库管理。

10 框架和技术

img

Spring Data 仓库的派生方法生成

IntelliJ IDEA 现在可以在 Spring Data 仓库中自动生成派生查询方法。 如果需要派生查询方法,您不必再手动更新仓库源代码。 只需在需要的地方输入方法名称,IntelliJ IDEA 就会建议可能的方法名称,提供正确的方法签名和返回值类型,并为您更新仓库代码。

  • img
  • img
  • img
  • img
  • img
  • img

HTTP 客户端更新

IntelliJ IDEA 2024.3 引入了使用 $env.ENV_VAR 语法在 HTTP 客户端内直接访问环境变量的功能。 这使请求和脚本中的变量管理和使用更加灵活。 此外,现在还可以将请求从一个 .http 文件导入到另一个 .http 文件并运行,可以一次性导入所有请求,也可以按名称导入特定请求。

img

Ktor 3.0 版本

Ktor 3.0 是一个用于在 JVM 上使用 Kotlin 构建服务器应用程序的工具包,现已搭载新功能并且性能得到提升。 新版本采用 Kotlin 2.0,切换到 kotlinx-io 库提升了 IO 相关操作的性能。 了解详情。

GraalVM 原生镜像的简化调试体验 旗舰版

我们大幅简化了使用 Docker 容器调试 GraalVM 原生镜像的体验,您现在可以在任意平台上构建和调试原生 Java 应用程序。 只需在运行配置中指定一个容器用于构建应用程序,另一个容器用于运行应用程序。 应用程序运行后,您可以在 Java 代码中和汇编程序级别调试应用。 为了简化设置,我们提供了预配置所有必要软件和库的 Docker 镜像。

img

OpenTofu 和 Terraform 增强

OpenTofu 现已获得支持。 此更新包括对加密方法、密钥提供程序的自动补全以及针对未知引用的检查。

Terraform 运行配置操作可以通过 Search Everywhere(随处搜索)访问,IDE 将自动检测未使用的变量和本地变量以保持代码清洁。 InitValidatePlanApplyDestroy 的控制已经得到改进,Run Configuration(运行配置)表单也已简化。 此外,改进的使用指示器和未使用资源警告可以增强导航并帮助您识别停用代码。

img

增强的 Dev Container

Dev Container 构建现在可以在远程 Docker 引擎上更顺畅地运行,有助于防止本地目录无法远程访问时出现错误。 WSL 的稳定性也得到增强,镜像构建有所改进,连接也变得稳定。

devcontainer.json 文件更一致地处理 features,新的 updateRemoteUID 选项通过设置正确的用户身份来避免访问冲突。 Dev Container 中的 IDE 设置可以通过 devcontainer.json 文件或 Add currently modified settings from IDE(从 IDE 添加当前修改的设置)按钮进行自定义,所有可用选项均可自动补全。

img

Docker Compose 改进

IntelliJ IDEA 2024.3 为 Docker Compose 提供了扩展支持。 现在,它在 env_file 自动补全中会优先考虑 .env 文件,使环境设置速度更快。 cache_tono_cachetagsplatforms 这些新的构建选项提供了对缓存和平台定位的更大控制。 depends_on.requireddepends_on.restart 的增强处理可以更有效地管理依赖容器的启动和关闭顺序。

deploy.placement.preferencesdeploy.resources.pidsdeploy.resources.reservations.devices 等新键允许灵活的服务放置和资源限制。 现在,多上下文构建和特权构建通过 build.additional_contextsbuild.privileged 获得支持。

额外选项包括 cgroup 配置、自定义 extra_hosts 映射和 healthcheck.start_interval。 增强的端口设置和 secrets.environment 现在通过环境变量简化了密钥管理。

对 WSL 中项目的更出色支持

我们持续提高托管在适用于 Linux 的 Windows 子系统 (WSL) 中并由开发者从 Windows 在 IDE 中打开的项目的可靠性。 特别是,我们引入了对符号链接的支持,并改用 Hyper-V 套接字与 WSL 交互来提高性能。 我们持续推动重大平台更改,提高包括 WSL 在内的远程环境的性能。

11 Kubernetes

img

网络策略支持

IDE 现在提供对网络策略的支持,用于管理集群中 pod 之间的网络流量。 它们允许您定义哪些 pod 可以从其他 pod、服务或外部源发送或接收流量。 网络策略的主要目的是控制和限制网络流量、管理 pod 隔离、确保安全以及规范外部访问。

12 数据库工具

  • img
  • img
  • img
  • img
  • img
  • img

文本到 SQL:AI 生成结果的编辑器内差异

我们改进了在编辑器中使用 AI Assistant 的体验。 现在,当您要求 AI Assistant 处理某段代码时,编辑器区域会包含原始代码和生成的代码的差异。 AI Assistant 的建议以不同的颜色高亮显示,并在装订区域标有 Revert(还原)图标。 您还可以在差异中自行编辑结果查询。 您的更改将以相同的方式高亮显示。 例如,您可以让 AI Assistant 使用查询检索更多数据,然后将 ORDER BY 子句添加到生成的结果中。

  • img
  • img
  • img
  • img
  • img
  • img
  • img

通过 AI Assistant 进行的 SQL 错误处理

在错误消息区域中,可以通过一些新操作使用 AI Assistant 处理 SQL 查询执行错误。 Explain with AI(使用 AI 解释)会打开 AI 聊天,自动发送提示,然后 AI Assistant 将做出响应并解释错误。 Fix with AI(使用 AI 修正)操作会在编辑器中为查询执行错误生成修正。

img

针对 JOIN 子句数量是否过多的检查

在某些情况下,不建议运行包含过多 JOIN 子句的查询,因为这会降低性能。 编辑器现在可以识别并高亮显示此类查询。 您可以在 IDE 设置中启用此检查。 为此,导航到 Editor | Inspections*(编辑器 | 检查),展开 *SQL 部分,然后选择 Excessive JOIN count(JOIN 计数过多)。

img

浮动分页工具栏

为了使数据编辑器中的网格分页更加明显,我们将控件从工具栏移动到数据编辑器的底部中心。

MySQL 和 MariaDB 的片段内省和智能刷新

IntelliJ IDEA 现在支持片段内省。 此前,内省器只能对 MySQL 或 MariaDB 数据库中的架构执行完整内省,但不能刷新单个对象的元数据。 每次 DDL 语句在控制台中执行并且该执行可能修改数据库架构中的对象时,IDE 都会启动对整个架构的全面内省。 这非常耗时,并且经常会扰乱工作流。

现在,IntelliJ IDEA 可以分析 DDL 语句,确定哪些对象可能受其影响并仅刷新这些对象。 如果您在 Database Explorer(数据库资源管理器)中选择单个条目并调用 Refresh(刷新)操作,则只有一个对象会被刷新,而不是像以前一样整个架构都被刷新。

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15589.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 基础命令介绍和常见报错解决

介绍一些 docker 可能用到的基础命令,并解决三个常见报错: 权限被拒绝(Permission Denied)无法连接到 Docker 仓库(Timeout Exceeded)磁盘空间不足(No Space Left on Device) 命令以…

【大语言模型】ACL2024论文-10 CSCD-IME: 纠正拼音输入法产生的拼写错误

【大语言模型】ACL2024论文-10 CSCD-IME: 纠正拼音输入法产生的拼写错误 目录 文章目录 【大语言模型】ACL2024论文-10 CSCD-IME: 纠正拼音输入法产生的拼写错误目录摘要研究背景问题与挑战如何解决创新点算法模型1. 错误检测模型2. 伪数据生成模块3. n-gram语言模型过滤4. 多任…

前端(2)——快速入门CSS

参考: 罗大富 CSS 参考手册 | 菜鸟教程 CSS 参考手册 1. CSS CSS全名是层叠样式表,中文名层叠样式表。用于定义网页样式和布局的样式表语言。 通过 CSS,你可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式,…

电阻测试流程

1.外观检查 (1)样品上丝印与规格书中相符,0402以上封装电阻要有标称电阻值,丝印清晰。 (2)检验外观,主要包含以下几点: a) 电阻器本体饱满,有光泽,不允许有气…

万博智云产品完成与ZStack Cloud云平台兼容性互认证

摘要 近日,上海云轴科技股份有限公司(简称“云轴科技ZStack”)与万博智云信息科技(上海)有限公司(简称“万博智云OnePro Cloud”)完成产品兼容性互认证。经过测试,万博智云OnePro Cloud两款旗舰产品HyperB…

深度学习框架Pytorch介绍和示例

目录 一. 简介 1.1动态计算图 1.2自动化功能 二. 主要特性 2.1 动态计算图 2.2 自动求导 2.3 强大的社区支持 2.4 多平台支持 三. 核心组件 3.1 Tensor 3.2 Autograd 3.3 nn.Module 3.4 Optim 四. 数据处理 五. 神经网络定义与训练 5.1定义神经网络: 5.2训练过…

鼠标点击(二)与接口函数集合的的实现

(1) (2) (3)

基于Spring Boot+Vue的多媒体素材管理系统的设计与实现

一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js;UI库:ElementUI; 开发工具&…

《FreeRTOS列表和列表项篇》

FreeRTOS列表和列表项 1. 什么是列表和列表项?1.1 列表list1.2 列表项list item 2. 列表和列表项的初始化2.1 列表的初始化2.2 列表项的初始化 3. 列表项的插入4. 列表项末尾插入5. 列表项的删除6. 列表的遍历 列表和列表项是FreeRTOS的一个数据结构,是F…

使用 MTT GPU 搭建个人 RAG 推理服务

什么是 LLM RAG?​ LLM RAG(Retrieval-Augmented Generation with Large Language Models)是一种结合大语言模型(LLM)和信息检索(IR)技术的生成方法,专门用于增强语言模型的上下文感知和准确性…

Vue3 -- 环境变量的配置【项目集成3】

环境: 在项目开发过程中,至少会经历开发环境、测试环境和生产环境(即正式环境)三个阶段。 开发环境 .env.development测试环境 .env.test生产环境 .env.production 不同阶段请求的状态(如接口地址等)不一样,开发项目的时候要经常配置代理跨…

AI 大模型应用:AI开发的捷径工作流模式

一、引言 大部分人使用 AI,大概都跟我一样,停留在初级阶段。 平时,就是向 AI 提问(又称聊天),偶尔也用一些现成的服务:生成图片、生成代码、翻译文章等等。 但是,时间久了&#x…

研究生被安排许多文献阅读,如何快速的阅读众多英文文献?

在科研的道路上,筛选文献就像是大海捞针,找对了方法,就能快速锁定那些有价值的信息。尤其是在实验方向尚未确定时,如何从海量文献中筛选出“金子”,就显得尤为重要。 关键的第一步:精准筛选 当你面对一堆…

信创迎来冲刺三年,国产项目管理软件跑出数智化“加速度”

信创发展是国家当前重要的战略布局,对国家发展具有长远的战略意义。国资委信创79号文件规定,2027年前按顺序完成“28N”的党政与八大重点行业100%信创替代,通过信创产业发展,国家能够提高自主创新能力,加速推进国产化转…

LSTM(长短期记忆网络)详解

1️⃣ LSTM介绍 标准的RNN存在梯度消失和梯度爆炸问题,无法捕捉长期依赖关系。那么如何理解这个长期依赖关系呢? 例如,有一个语言模型基于先前的词来预测下一个词,我们有一句话 “the clouds are in the sky”,基于&…

基于Java仓库管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、LayUI 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL8.0 数据库管…

数量关系2_余数平方等差、整除和完工

目录 一、余数、平方数与等差数列1.等差数列2.平方数3.余数问题二、整除问题和合作完工问题1.利用倍数特性解决不定方程2.利用整除特性解决纯整除问题3.合作完工一、余数、平方数与等差数列 1.等差数列 ※等比数列不常考,或者考的时候比较复杂,可放弃。 补充1:常用的等差数…

cache中命中率和缺失率

这张图解释了缓存的三个关键指标:命中率、缺失率和缺失损失,并分析了它们在缓存访问中的重要性。 具体说明 命中(Hit): 命中表示要访问的信息在缓存中已经存在,不需要从更慢的主存中读取。命中率&#xff…

Jmeter查看结果树之查看响应的13种详解方法

软件测试资料领取:[内部资源] 想拿年薪40W的软件测试人员,这份资料必须领取~ 软件测试面试刷题工具:软件测试面试刷题【800道面试题答案免费刷】 Jmeter查看结果树查看响应有哪几种方法,可通过左侧面板底部的下拉框选择: 01 Te…

<Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、URL、描述、位置移动

目的: 浏览器的地址簿太厚,如下图: 开始,想给每个 Web 应用加 icon 来提高辨识度,发现很麻烦:create image, resize, 还要挑来挑去,重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的…