在IntelliJ IDEA中,您可以创建自定义Live Templates来提高代码编写效率。Live Templates是预定义的代码模板,它们允许您以快捷键的方式插入常用代码片段,从而减少繁琐的输入工作。下面是一个针对小米手表自定义息屏教程的示例:
步骤 1:打开IntelliJ IDEA
确保您已经打开了IntelliJ IDEA并且正在编辑您的小米手表项目。
步骤 2:访问Live Templates设置
在IntelliJ IDEA中,点击菜单 "File" > "Settings"(或者在macOS上是 "IntelliJ IDEA" > "Preferences")打开设置。
步骤 3:进入Live Templates设置
在设置窗口中,展开 "Editor" > "Live Templates" 以进入Live Templates设置。
步骤 4:创建新的Live Template
在Live Templates设置中,您会看到一列现有的代码模板,包括很多Java、Kotlin、HTML等语言的模板。要创建新的Live Template,点击左上角的 "+" 图标。
步骤 5:配置Live Template
在弹出的窗口中,进行以下配置:
Abbreviation(缩写): 输入一个简短的缩写,这是您将在代码中键入以触发Live Template的关键字。例如,您可以输入 "xm_screen_off" 作为缩写。
Description(描述): 输入Live Template的描述,以便您和其他开发者了解该模板的用途。例如,输入 "小米手表自定义息屏模板"。
Template text(模板文本): 在这里输入您希望插入的代码片段。对于小米手表自定义息屏模板,您可以输入一段示例代码,如下所示:
javaCopy code// 小米手表自定义息屏模板public void turnOffScreen() { // 实现息屏逻辑}
- 变量(Variables): 您可以在模板文本中添加变量,以便在插入模板后进行自定义。例如,您可以添加一个
$MESSAGE$
变量,以允许用户自定义消息内容。
步骤 6:定义上下文适用性
在下方的 "Applicability" 部分,定义模板的上下文适用性。例如,您可以指定该模板仅在Java文件中可用。
步骤 7:保存设置
完成模板配置后,点击 "OK" 以保存设置。
步骤 8:使用自定义Live Template
现在,您可以在编辑Java文件时使用您创建的自定义Live Template。只需在代码编辑器中输入您的缩写(在本例中是 "xm_screen_off"),然后按下 "Tab" 键,IDEA会自动插入您的自定义代码模板。
这是一个简单的示例,说明如何在IntelliJ IDEA中创建和使用自定义Live Templates。您可以根据项目需求和编码风格创建更多的自定义模板,以提高您的开发效率。
本周热门软件更新 — Angular 4.0.0 beta0 发布,语义化版本控制;JetBrains 的全新 Go IDE Gogland 发布;Go 1.8 beta2 发布,正式版计划 2017 年 2 月发布;Python 3.6 即将发布,都有哪些新特性?
要的就是速度,Angular 4.0.0 beta0 发布
由于想将核心包版本对齐,加上语义化版本控制,Angular 2 之后将迎来 Angular 4。更新内容:
● fix(编译器):修复 compiler_host 中的合并错误
● common: add a titlecase pipe
● common: export NgLocaleLocalization
● compiler: add id property to i18nMessage
● compiler:digest methods return i18nMessage id if sets
● forms: add novalidate by default
●http: simplify URLSearchParams creation
● language-service: warn when a method isn't called in an event
● platform browser:introduce Meta service
● router: routerLink add tabindex attribute
● testing:add overrideTemplate method
● common ngIf now supports else; saves condition to local var
Angular 还发布了 2.3.0 和 2.3.1 版本
2.3.0 版本更新如下:
Bug 修复
●common:确保复数类别存在
● 编译器: 包括 reexported modules / directives / pipes 的概要
● 编译器: 无论在任何上下文正确地序列化 StaticSymbol
● 编译器: 具有索引的短路表达式
●core:在独立组件上显示框架版本
● facade: 缓存原始格式字符串
● http: 设置默认的 Accept 头
● language-service: 避免抛出无效的类声明
● language-service: 不再抛出无效的元数据
●language-service: 从 createLanguageServiceFromType()中删除不完全使用的参数
●language-service: compiler-cli 更新使用 CompilerHost
●router: 允许指定匹配器而不指定路径
● router: 修复 replaceUrl 在 RouterLink 的指令
● router: 修复 skipLocationChanges 在 RouterLink 的指令
● router: make setUpLocationChangeListener idempotent
●router:当每次不成功地导航到同一个网址时重复运行保护
● router: 当 angular 1 不再 bootstraped 时,抛出一个更好的错误消息提醒
● router: 验证嵌套路由
●tsc-wrapped: have UserError display the actual error
功能
● 编译器: 读写 .ngsummary.json 文件
Go 1.8 beta2 发布,正式版计划 2017 年 2 月发布
Go 1.8 beta2 发布了。据悉,Go 1.8 新特性的开发工作已经冻结,Go 1.8 计划在 2017 年 2 月正式发布,新功能和详细说明请查看官方文档。
Go 1.8 beta2 未找到更新日志,提交记录如下:
● test:添加导致 gccgo 编译器崩溃的 gcc 78763.go 测试
●test:将 mipsx case 添加到 nosplit.go
● net/http: deflake TestServerTimeouts maybe
● runtime: 保存 callee-saved C registers 到 sigtramp
Python 3.6 即将发布,都有哪些新特性?
在新版本正式发布之前,一起来看看会有哪些重要的新特性。
1. 格式化字符串字面量
● PEP 498引入了 f-string,一种新型的字符串字面量。中文翻译为“格式化字符串字面量”。这种字符串以 f 为前缀,类似 str.format() 方法所接受的字符串。其中的可替换字段用 {} 包裹起来,在运行时进行求值。具体代码示例:
2. 变量注释语法
● 此前,Python 已加入了对函数变量类型进行注释的标准,也就是 type hint。而 Python 3.6 中则根据 PEP 526 的提议,加入了对更多变量类型注释的功能,包括类变量和实例变量。
● 与静态语言中的变量声明不同,Python 中的变量声明是为了更加方便地为第三方工具和库提供结构化的类型元数据。会使用到新语法的工具包括:mypy,pytype,PyCharm,等等。
3. 数字字面量使用下划线
● 对于较大的数字来说,位数太多可能不好判断值到底有多大。现在新版本中将允许你在数字字面量中使用下划线,提高可读性。
4. 异步生成器
● 在上一个版本中,Python 引入了对原生协程的支持,并可使用 async 或 await 语法,但是有一个限制是没办法在同一个函数体中使用 await 和 yield 。这个限制在 3.6 版中取消了,因此以后将可以定义异步生成器。使用新语法,可以让你的代码更简洁,运行速度更快。
5. 异步推导
● 推导(Comprehension)本身就是 Python中一个很棒的语法糖。在新版本中,它将得到一次重大升级。PEP 530 提出了在列表、元组、字典推导或生成器表达式中使用 async for 语法。这样就将原有各种推导式变成了可支持异步。同时,推导式中还支持使用 await 表达式。
新版本中还新增了一些库,而且听说字典类型重新实现了,里面的元素会是有序的。
Linux 发行版 CentOS 7.3 发布
CentOS 7.3 发布了,CentOS 是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。主要更新:
● Since release 1503 (abrt>= 2.1.11-19.el7.centos.0.1) CentOS-7 can report bugs directly to bugs.centos.org. You can find information about that feature at this page.
● Various new packages include among others: python-gssapi, python-netifaces, mod_auth_openidc, pidgin and Qt5.
● Support for the 7th-generation Core i3, i5, and i7 Intel processors and I2C on 6th-generation Core Processors has been added.
● Various packages have been rebased. Some of those are samba, squid, systemd, krb5, gcc-libraries, binutils, gfs-utils, libreoffice, GIMP,SELinux, firewalld, libreswan, tomcat and open-vm-tools.
SHA2 is now supported by OpenLDAP.
● ECC-support has been added to OPenJDK-8, PerlNet:SSLeay and PerlIO::Socket::SSL.
Bluetooth LE is now supported.
JetBrains 的全新 Go IDE 代号 Gogland 发布
Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境。Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。目前正式版尚未发布。
开源的 Servlet 容器 Jetty 9.4.0 正式版发布
在经过 9.3.x 分支中的 14 个主要发布,2 个里程碑构建和 4 个候选版发布之后,Jetty 团队宣布 Jetty 9.4.0 正式版发布! Jetty 9.4.0 引入了几个新的功能、改进和错误修复。主要更新内容:
● 会话管理器大修:会话管理现在更容易实现和配置。此外,对于管理使用多种技术来支持会话群集(MongoDB,Infinispan等)的实例,还提供了改进的支持。
● 改进 HTTP/2:更好的流控制,更高的吞吐量,线程交错等等
● 日志记录改进:日志模块 Jetty 9.4.0 已经大大扩展,使配置更加透明,并为实施提供更多选择。
● 改进的模块系统:Jetty 9.3 中引入的 Jetty 模块系统已经发展壮大。新的模块已经添加到现有的模块,还引入了类似模块标签的特性,以便为复杂实现提供更大的灵活性和定制。
● 升级到 Websocket:WebSocketClient 已与 Jetty HttpClient 集成,以支持 CookieStore、代理、身份验证和跟随重定向等功能。此外,Jetty Websocket 实现已经收到了几个调整更改,以提高性能。
Java 开发工具 IntelliJ IDEA 2016.3.1 发布
IntelliJ IDEA 2016.3.1 发布了。如果还没有尝试 IntelliJ IDEA 2016.3,欢迎使用 IntelliJ IDEA 2016.3.1,本次更新带来了很多重要的错误修正。
● 其中最显著的变化之一是实现了对 JUnit 5 M3 的支持,如果计划继续运行 JUnit 5 M2,必须使用 IntelliJ IDEA 2016.3(或更早版本),或手动引入 JUnit 5 M2 的类路径中的属性。
● 至于 JDK 9,IntelliJ IDEA 2016.3 将不支持 builds 148 及以上,因为它们包含破坏性的代码。现在正在努力解决这个问题,支持最新 JDK 9 的版本将在 2017.1 发布(其 EAP 可能会在未来几个星期内开始)
Android Studio 2.3 Canary 3 版本发布
Android Studio 2.3 Canary 3 版本已发布至 Canary 和 Dev 渠道。除了常见的大量 bug 修复,在这个版本中还有一些值得注意的变化:
1. Instant Run(即时运行)
● Instant Run 在此版本中的工作方式得到了重大改变。 对运行中的应用进行更改不再与 play.png 运行按钮关联。 运行按钮现在将始终执行应用重启。 要在运行的进程中进行代码和资源更改,在其旁边有一个新的 hot-reload.png 按钮,"Apply Changes",会试图将更改传送到应用程序。 (应用更改的键盘快捷方式是 Windows 和 Linux 上的 Control-F10,Mac上的 Cmd-Ctrl-R)。
● 这个变化的目的是让“Run(运行)”按钮更加可靠。 按运行时,可以始终确保更改反映在正在运行的应用程序中。 应用更改现在是进行调整时所采取的单独操作。 运行按钮继续使用“cold swap(冷交换)”来构建程序比重新安装完整的 APK 更快,但它被限制在 Lollipop 上。
2. Build Cache(构建缓存)
● 在 Android Studio 2.3 Canary 1 中,曾默认启用了一个新的构建缓存(它使用跨项目的共享目录来提取和编译库)。 这最终打破了 IDE 中的几个功能,它们对库的位置做出了假设。 在 Android Studio 2.3 Canary 3 中,大多数这些错误都已修复; 还有一些表面的东西剩余(例如在合并的清单编辑器和文档弹出窗口中列出库版本),后续将继续修复。
3. Layout Editor(布局编辑器)
● 布局编辑器中有几个新功能。 首先,调色板已经完全重写。 新的调色板提供了小部件的预览,有更好的排序,以及搜索和过滤:点击搜索图标 findPlain.png 可以找到小部件。 第二,搜索和过滤现在也可以在属性检查器中工作。 第三,可以在检查器中为指定窗口小部件自定义类型显示的属性集。 在所有属性表中,单击星形图标 favorites.png 以收藏想要查看的此类型的窗口小部件的属性,从现在开始,这些属性将显示在组件检查器的收藏夹部分。
4. App Links Assistant(App链接助手)
● Android 应用链接允许用户无缝连接到你的应用体验。 现在可以更轻松地在你的应用中添加 Android 应用链接支持。 只需在 Android Studio 中前往 [工具] > [App链接助手] 即可开始使用.
5. Lint
● 命令行 HTML reports 已经被大修 - 不再是旧的暗色 Holo 外观,现在有一个 Material 设计外观,并且包括代码片段语法突出显示等等。
6.Data binding(数据绑定)
● 修复了几个编辑器错误,包括常见的功能表达式问题。 编辑器解析器现在能正确处理这些。
7. Dual debugger(双调试器)
● 混合调试器已重命名为双调试器。
8. ProGuard version update(ProGuard 版本升级)
● 用于 Gradle 的 Android 插件使用的 ProGuard 版本升级到 5.3.2。
9. SDK Patches(SDK 补丁)
● 在 SDK 更新发生修补问题后,现在正在为 SDK 提供补丁。在接下来的几周内,将继续为更多组件提供更多补丁。
Android Studio 2.3 Beta1 发布,2.3 首个测试版
该版本和12月13日发布的 Android Studio 2.3 Canary 3 版本差异不大,主要是对 IDE 做了修改:
● 在 Android Studio 2.3 Canary 1 中,基础 IDE 从 IntelliJ 2016.1 升级到了 2016.2,它增加了许多新功能 - 连字,面包屑,编辑器背景图片,重新设计的 UI 等。 Beta1 在 OpenJDK 中包含了一些额外的修补程序,帮助运行 Sierra 的 Mac 用户使用。
MySQL 社区版 5.7.17 发布
MySQL 社区版 5.7.17 发布了,该版本改进较多,涉及到安全性、InnoDB、NDB Cluster、Replication 等。具体可查看官方的发布主页。
快速开发平台 SpringBlade 稳定版发布
SpringBlade 是基于多个优秀的开源项目,高度整合封装而成的快速开发平台。
内置功能
● 用户管理
● 角色管理
● 菜单管理
● 字典管理
● 部门管理
● 附件管理
● 参数管理
● 连接池监视
● 日志管理
● 代码生成
技术选型
后端
● 核心框架:Spring Framework
● 安全框架:Apache Shiro
● 视图框架:Spring MVC
● 服务端验证:Blade Validator
● 任务调度:Spring Task
● 持久层框架:beetlsql
● 模板引擎:beetl
● 数据库连接池:Alibaba Druid
● 缓存框架:Ehcache
● 日志管理:SLF4J、LOGBACKUP
● 工具类:Apache Commons、FastJson、EASYPOI、BladeToolBox
前端
● JS框架:jQuery
● CSS框架:Twitter Bootstrap
● 客户端验证:JQuery-html5Validate
● 富文本:KindEcitor
● 数据表格:jqGrid
● 树结构控件:jQuery zTree
● 弹出层:Layer
● 日期控件: LayDate
● 图表控件:echarts
Mybatis-Plus 发布 2.0 里程碑版本,代号:庐山
升级日志
● 支持全局大写命名策略
● 自动分页 Count 语句优化
● 优化现有全局配置策略
● 优化全局验证策略
● 优化代码生成器(之前硬编码,现使用模板形式)
● 优化注入通用方法 ByMap 逻辑
● 添加自动选择数据库类型
● 改善 SqlExplainInterceptor(自行判断 MySQL 版本不支持该拦截器则直接放行(版本过低小于 5.6.3))
● 修复部分特殊字符字符多次转义的问题
● 优化现有 EntityWrapper 添加 Wrapper 父类以及 Condition 链式查询
● Wrapper 类使 LIKE 方法兼容多种数据库
● 优化日志使用原生 Mybatis 自带的日志输出提示信息
● 修复使用缓存导致使用分页无法计算 Count 值
● 修复 PerformanceInterceptor 替换 ? 导致打印 SQL 不准确问题,并添加格式化 SQL 选项
● 添加多种数据库支持,请查看 DBType
● 添加字符串类型字段非空校验策略(字符串类型自动判断非空以及非空字符串)
● Wrapper 添加类似 QBC 查询(eq、gt、lt 等等)
● 支持 AR 模式(需继承 Model)
● 合并所有 Selective 通用方法(例如:去除之前的 insert 方法并把之前的 insetSelective 改名为 insert)
● 解决 SQL 剥离器会去除--的情况
● 支持 MySQL关键词,自动转义
● 精简底层 Service、Mapper 继承结构
● 不喜欢在 XML 中写 SQL 的福音,新增执行 SQL 方式,具体请查看 SqlQuery
● 优化代码结构
● 解决 issus[95,96,98,100,103,104,108,114,119,121,123,124,125,126,127,128,131,133,134,135],具体请查看里程碑 mybatis-plus 2.0 计划中所有 issus
JS/HTML/CSS 终端 Hyper? 1.0.0 发布
Hyper? 是一款 JS / HTML/ CSS 终端工具。该项目旨在为用户创建一个美观的、易于扩展的命令行接口工具,并且构建一个开放式 Web 标准。更新内容:
1. 支持 Windows ,Linux 版改进
该版本正式宣布支持 Windows ,同时提供一流的 Linux 版本:
● 从 child_pty 移动到 pty.js - 后者支持 Windows
● 重写了选项卡的 UI
● 添加了一个汉堡菜单,以便可以轻松访问应用菜单
2. 自定义活动会话的外观
可通过 .term_active CSS 类自定义活动会话的外观:
● 活动的 <Term /> 将接收活动的 CSS 类。
3. Vibrancy
发行一个新的 Electron 版本,支持 macos 上的 Vibrancy :
● 可从可用的活动类型列表中进行选择。
4. 进一步改善开发者体验,改进开发工作流程
● 不再同时使用统一的任务启动。 这意味着 Hyper 不会失败,因为 Webpack 仍然工作
● 采用了一个 lint task,可以只运行 linter 检查代码风格是否匹配。
开源系列合集 Elastic Stack 5.1.1 发布
ElasticStack 5.1.1 发布了,ElasticStack 是一系列开源产品的合集,包括 Elasticsearch、Kibana、Logstash 以及 Beats 等等。更新内容:
Elasticsearch
● Reindex 允许通过多个 workers 并使其运行更快
● 新字段/查询类型允许索引和查询时间范围
● 任务管理器允许取消长时间运行的搜索
有关更多详细信息和许多其他功能,请阅读原文。
Kibana
“可视化”所有功能,以及“发现”更多信息请查看 详细。
● 云标签添加可视化
● 渲染速度提高,CPU使用率下降,并且Discover可以更好地处理数据和索引
Logstash
许多用户要求的功能在此版本中出现。
● 日期过滤器已经增强,在所有情况下都快2.5倍。
Beats:细节请查阅 阅读原文
X-Pack:X-Pack 在 Search Profiler 中获得了一个新功能,查看 阅读原文。
ES-Hadoop:包括一项紧急修复,处理 Pig、Hive 和 Cascading 中的原始 JSON 数据。
间隔 7 年后再更新,Pygame 1.9.2 正式发布
Pygame 1.9.2 正式发布了,现已支持 Python 3。Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。允许你在 Python 程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块可以支持多个操作系统。
Pygame 上一个正式版本的发布是在 2009 年 8 月,到现在已经超过 7 年。
Element-UI 1.0.6 和 1.0.7 发布
v1.0.6 更新内容:
● 新增 Tabs 组件的 disabled 属性
● 新增 DatePicker 的 input 支持 size
● 修复 DatePicker 为 datetimerange 类型并设置初始值时,面板未显示正确日期的问题
● 修复 DatePicker 切换年份时显示异常的问题
● 修复 DatePicker 点击 icon 未触发 clickoutside 的问题
● 修复 TimePicker 点击清空按钮后再次点击不会更新初始值的问题
● 修复 Select 远程搜索且 value 为对象类型时的显示问题
● 修复 Select 为 disabled 时,clearable 仍然可以工作的问题
● 修复 自定义背景颜色的 Switch 在动态切换 disabled 时,背景颜色错误的问题
● 修复 Table 的一些样式问题
v1.0.7 更新内容:
● 修复 DatePicker 在有值的情况下 hover 清空按钮时会错误地显示弹框
● 修复 DatePicker 设置默认值为 null 会错误地显示时间值
● 新增 Table 的 row-contextmenu 事件和 max-height 属性
● 新增 MessageBox 的 customClass 属性
● 新增 Message 和 Notification 的 iconClass 和 customClass 属性
● 新增 Table 支持 empty slot
● 改进 InputNumber change 事件增加 old value 的参数
Linux Mint 18.1 'Serena' 发布,圣诞特辑
Linux Mint 18.1 'Serena' 发布了。Linux Mint 18.1 附带了更新的 Cinnamon 3.2,效果极佳。Mint 团队在桌面环境中添加了一个新的屏幕保护程序/登录屏幕等等。