IDEA代码文件的版权(copyright)信息配置

IDEA代码文件的版权(copyright)信息配置

  

1、快速创建Copyright 版权配置文件

1、创建copyright文件
    依次点击 File > Settings… > Editor > Copyright > 点击 “+” 号或 “Add profile”***,弹出创建 Copyright Profile 操作窗口,在***文本栏中输入版权配置文件的名称,文件名可自定义;
在这里插入图片描述

2、添加版权信息
    在 *Copyright text(may contain Velocity templates)*文本框中根据自身需求写入版权信息(如下),并点击 Apply 进行应用;

Copyright (c) xxxx my copyright message. 2022-${today.year}. All rights reserved. (根据需要自定义版权信息)

在这里插入图片描述
3、设置并使用创建好的版权文件
    退回至 Settings 中的 Copyright,在 Default project copyright 选项框中***选中刚刚创建好的版本文件***,点击 Apply 进行应用;
在这里插入图片描述

4、使用方法
    在新创建文件时,无需手动编辑,IDE会自动生成版本信息。
在这里插入图片描述

2、为所有新建项目自动配置版权信息

    通过以上 “步骤1 快速创建Copyright 版权配置文件” 的操作,可以完成 CopyRight Profile 版权文件的创建,并在当前项目中生效。但是在创建新的项目时,会发现新建的项目中并没有已经创建好的版权文件,打开设置查看也发现确实没有可用文件。
    此时如果不嫌麻烦,可以再次手动创建版权文件【手动狗头】。
    为了一劳永逸,我们可以将已存在的版权文件导入进来。此文件可以是别人发送过来的,也可以使用之前自行创建好的。默认的保存路径为:项目根路径.idea\copyright\xxxx.xml
在这里插入图片描述
    要导入已存在的copyright版权文件,依次点击 ***File > New Projects Settings > Settings for New Projects… ***进入全局配置,在这里进行的配置会对新建项目生效。【需要注意的是,各个版本的IDEA为新建项目所做的配置进入路径不一样,可以网上查找一下】
在这里插入图片描述
    之后同样进入了Settings设置框,依次点击 Editor > Copyright > Import 的箭头图标,弹出选择copyright文件的操作窗口,根据路径选择即可。
请添加图片描述
==注意:==不知为何,以前这么设置时是可以为新建项目自动配置版权文件的,但是当前在这个版本(2021.1)的IDEA中却不生效。需要排查下原因。

3、自定义版权信息模板

    通过添加自定义快捷模板cprt,可以在未添加版权声明的文件头以手动输入缩略语的方式快捷配置版权信息。

1、新建模板分组
    依次点击进入 ***File > Settings… > Editor > Live Templates,点击右侧 “+” 号并在弹出选项中选择 “Template Group…”***,用以新建自定义的模板分组,此处取名为 Custom。(可以将要创建的模板放在系统的分组中,但不建议;自行创建分组可以更好的管理自定义模板)
【若已经存在自定义模板分组,可直接进入第2步骤】
在这里插入图片描述

2、创建 cprt 模板
    选中已创建好的自定义模板分组,***点击右侧 “+” 号***并在弹出选项中***选择 “Live Template”***。
在这里插入图片描述

3、填充自定义模板信息
    新建模板后,需要配置模板相关信息。模板中各项参数以及作用如下:

  • Abbreviation 缩略语:在此处填入触发缩略语,在Java文件中可以通过缩略语触发版权模板;
  • Description 描述:对当前模板的描述,为可选项;
  • Template Text 模板内容:版权信息模板的展示内容,根据需要来填写;
  • Edit variables 变量编辑:若模板内容中填入的信息中带有变量,可以通过该设置项对变量进行格式化、赋值等操作;
  • Expand with 手动触发按键:默认为 Tab 键,可保持默认,也可以自定义;
  • Define 自定义作用域:可以选择 Everywhere ,也可以选择自定义的模块,比如此处选择 Java 模块中的 Declaration。
    在这里插入图片描述

​ 此处在自定义的版权模板内容框中填入的信息如下:

/*
 * This is my custom copyright information.2022-${today.year}. All rights reserved.
 */

    在 Edit variables 变量赋值这一块,使用的是 date(“yyyy”) 函数返回值;默认值则填写了今年的字符串。【更多对 Edit variables 以及 Expression 函数 的补充说明见本文末尾】

4、使用方式
    在未添加版权信息的类头部输入缩略语(如此处的 cprt)则可生成版权信息。在新建工程中,无需额外设置,即可使用缩略语快速生成版权信息。


4、一键更新copyright作用范围

    以上操作仅能使 copyright 文件对当前项目新建的文件生效,或者需要一个一个文件进行手动添加版权信息。而对于想要给很多文件添加版权信息的人来说,这不是一个好办法。IDEA提供了一键快捷添加版权信息的功能,方式为:点击 Code > Update Copyright… > 在弹出的 Specify Update copyright Scope 操作窗口中选择生效范围

  • Whole Project:版权信息将更新至整个项目。
  • File ‘…\xxx\xxx\xxx.java’:版权信息仅更新至选中的文件。
  • Custom scope:版权信息在自定义文件范围内生效。
    在这里插入图片描述


    【对 Edit variables 变量编辑的扩展】

    经测试,可以得出以下结论(其他场景可自行验证):

  • 写于模板内容 Template text 中的变量,需用 “$” 符号将变量名括起来,比如 ​$Date$;变量名可自定义;
  • 变量名和变量取值函数没有一一对应关系,可以任意组合;
  • 获取日期的函数 date() 默认格式为 “yyyy/MM/dd",获取时间的函数 time() 默认格式为 “hh:mm”;
  • 需要指定格式,则需自行传入格式参数,如指定日期格式为 “yyyy-MM-dd”,则在选择日期函数date()时传入格式参数,比如 date(“yyyy-MM-dd”);
    在这里插入图片描述


    更多对 Expression 函数、参数的意义解析如下表所示:
函数、参数描述
annotated(“annotation qname”)使用驻留在指定位置的注释创建类型符号。
例如,请参见迭代组中的活动模板。
anonymousSuper()为Kotlin对象表达式建议一个超类型。
arrayVariable()建议当前作用域中适用的所有数组变量。
例如,请参见迭代组中的活动模板。
blockCommentEnd返回在当前语言上下文中指示块注释结束的字符。
blockCommentStart返回在当前语言上下文中指示块注释开始的字符。
camelCase(String)将字符串转换为camelCase。
例如,camelCase(my-text-file)、camelCase(my text file)和camelCase(my_text_file)都返回myTextFile。
capitalize(String)将参数的第一个字母大写。
capitalizeAndUnderscore(sCamelCaseName)将作为参数传递的CamelCase名称的所有字母大写,并在各部分之间插入下划线。例如,大写和下划线(FooBar)返回FOO_BAR。
castToLeftSideType()将右侧表达式转换为左侧表达式类型。在迭代组中,它使用一个模板来生成raw类型和泛型集合。
className()返回当前类的名称(展开模板的类)。
classNameComplete()这个表达式替代了变量位置上的类名补全。
clipboard()返回系统剪贴板的内容。
commentEnd()返回指示当前语言上下文中注释结尾的字符。如果行注释是用当前语言定义的,则返回值为空。
commentStart()返回指示当前语言上下文中注释开头的字符。如果行注释是用当前语言定义的,则它们的开始指示符更好。
complete()在变量的位置调用代码完成。
completeSmart()在变量的位置调用智能类型完成。
componentTypeOf()返回数组的组件类型。有关示例,请参见迭代组和其他组中的活动模板。
concat(expressions…)返回作为参数传递给函数的所有字符串的串联。
currentPackage()返回当前包名称。
date(sDate)如果没有参数,则以默认系统格式返回当前日期。
decapitalize(sName)将参数的第一个字母替换为相应的小写字母。
descendantClassEnum()返回指定为字符串参数的类的子级。
enum(sCompletionString1,sCompletionString2,…)返回在扩展模板时建议完成的逗号分隔字符串列表。
escapeString(sEscapeString)转义指定为参数的字符串。
expectedType()返回模板扩展到的表达式的预期类型。如果模板在赋值的右部分、返回后等展开,则很有意义。
fileName()返回当前文件的名称及其扩展名。
fileNameWithoutExtension()返回不带扩展名的当前文件的名称。
firstWord(sFirstWord)返回作为参数传递的字符串的第一个字。
groovyScript(“groovy code”, arg1)返回具有指定代码的groovy脚本。
可以将groovyscript()函数与多个参数一起使用。第一个参数是所执行脚本的文本或包含脚本的文件的路径。下一个参数绑定到脚本中可用的_1、_2、_3、…_n变量。此外,脚本中还提供了_editor变量。此变量绑定到当前编辑器。
guessElementType ()猜测java.util.collection中存储的元素类型。为了猜测,intellij想法试图找到元素添加到容器或从容器中提取的位置。
iterableComponentType()返回可iterable组件的类型,如数组或集合。
iterableVariable()返回可迭代的变量的名称。
JsArrayVariable()返回当前javascript数组的名称。
jsClassName()返回当前javascript类的名称。
jsComponentTypeOf()返回当前javascript组件的类型。
jsDefineParameter基于模块的名称,返回参数fromdefine([“module”]、function(<parameter_in_question>>))。
jsMethodName()返回当前javascript方法的名称。
jsQualifiedClassName()返回当前javascript类的完整名称。
jsSuggestIndexName()返回最常用的索引变量的建议名称:i、j、k等。当前作用域中尚未使用的名称将首先显示。
jsSuggestVariableName()根据引用变量命名规则的代码样式设置,基于变量类型和初始值设定项表达式返回变量的建议名称。
例如,如果它是一个在迭代中保存元素的变量,那么intellij-idea会猜测最合理的名称,并考虑到被迭代的容器的名称。
jsSuggestDefaultVariableKind(Boolean)布尔参数确定当前上下文中是否允许常量。如果未指定参数,则允许使用常量。当模板展开时,将显示一个下拉列表,其中包含typescript和es6的var、let和const选项,以及早期javascript版本的一个var选项。
jsSuggestImportedEntityName()根据文件名,将’import*类型的import语句的名称建议为 i t e m item itemfrom“ m o d u l e module module”`或’import i t e m item itemfrom“ m o d u l e module module”。
lineCommentStart返回在当前语言上下文中指示行注释开头的字符。
lineNumber()返回当前行号。
lowercaseAndDash(String)将camelcase字符串转换为小写,并插入n个破折号作为分隔符。例如,LowerCaseandDash(MyExampleName)返回我的示例名称。
methodName()返回展开模板的方法的名称。
methodParameters()返回展开模板的方法的参数列表。
methodReturnType()返回当前方法返回的值的类型(模板在其中展开)。
qualifiedClassName()返回当前类的完全限定名(在其中展开模板)。
rightSideType()用右侧表达式的类型声明左侧变量。在迭代组中,它使用一个模板来生成原始类型和泛型集合。
snakeCase(String)将字符串转换为蛇形大小写。例如,snakecase(foo bar)返回foo_bar。
spaceSeparated(String)将字符串转换为小写并插入空格作为分隔符。例如,spaceseparated(foo bar)返回foo bar。
substringBefore(String,Delimiter)删除指定分隔符后的扩展名并仅返回文件名。这有助于测试文件名(例如,substringbefore( f i l e n a m e filename filename,“.”)返回component test.js中的组件测试。
subtypes(sType)返回作为参数传递的类型的子类型。
suggestFirstVariableName(sFirstVariableName)不代表真的,假的,这个,超级的。
suggestIndexName()建议使用最常用的索引变量的名称:i、j、k等(第一个不在当前范围内使用的变量)。
suggestVariableName()根据引用变量命名规则的代码样式设置,基于变量类型及其初始值设定项表达式建议变量的名称。
例如,如果它是一个在迭代中保存元素的变量,那么intellij-idea会猜测最合理的名称,并考虑到要迭代的容器的名称。
time(sSystemTime)以指定格式返回当前系统时间。
typeOfVariable(VAR)返回作为参数传递的变量的类型。
underscoresToCamelCase(String)用作为参数传递的字符串中的camelcase字母替换下划线。例如,underlinestocamelcase(foo_bar)返回foo bar。
underscoresToSpaces(sParameterWithUnderscores)用作为参数传递的字符串中的空格替换下划线。例如,underlinestospaces(foo_bar)返回foo bar。
user()返回当前用户的名称。
variableOfType()建议可以分配给作为参数传递的类型的所有变量,例如,VababeLoFype(“java. U.L.Vector”)。如果传递一个空字符串(“”)作为参数,那么函数将建议所有变量,而不管其类型如何。
  • 14
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值