文件和代码模板中的 ${NAME} 大写

问题描述 投票:0回答:5

问题

首选项 -> 编辑器 -> 文件和代码模板 我有一个 React 模板:

import React from 'react';

class ${NAME} extends React.Component {

  render() {
    return (
      <div>
        #[[$END$]]#
      </div>
    );
  }
} 

export default ${NAME};

有没有办法将

${NAME}
大写?

我们有一个以小写字母开头的命名文件的约定,但在 React 中组件应该大写。

其他信息

我知道 IntelliJ 具有重构能力,并且您可以使用 Live Templates 来完成此任务,但我想删除这个额外的步骤:)。

这在实时模板中是可能的,您可以在其中定义和引用像

capitalize(fileNameWithoutExtension())
这样的表达式,但我找不到在文件和代码模板中定义表达式的任何地方。

intellij-idea
5个回答
25
投票

所以在做了一些研究之后我想出了这个:

import React from 'react';

#set($capitalizedFilename = $NAME.substring(0,1).toUpperCase() + $NAME.substring(1))
class $capitalizedFilename extends React.Component {
  
  render() {
    return (
      <div>
        #[[$END$]]#
      </div>
    );
  }
} 

export default $capitalizedFilename;

4
投票

IntelliJ IDEA 文件模板是一个 Velocity 模板。 Velocity 允许您对变量使用标准 String 方法(有关一些示例,请参阅此问题)。


3
投票

以下是WebStorm文件模板的所有案例:

#set($NAME_CAP = $NAME.substring(0,1).toUpperCase() + $NAME.substring(1))
#set($NAME_LOW = $NAME.substring(0,1).toLowerCase() + $NAME.substring(1))
#set($NAME_UPPER = $NAME.toUpperCase())

2
投票

Velocity 的 StringUtils 也可用:

#set($NAME_CAPITALIZED = ${StringUtils.capitalizeFirstLetter($NAME)})
import React from 'react';

class ${NAME_CAPITALIZED} extends React.Component {
  // ...
}

0
投票

这个解决方案对我有用:

  1. 单击“编辑变量”
  2. 设置小写(${你的文件名变量})

Here's how it should look

© www.soinside.com 2019 - 2024. All rights reserved.