5

编辑——这对于 coc-snippets是不可能的。使用 Ultisnips 是可能的。

我有以下用于 React 的 vim 片段(使用 coc-snippets):

snippet STATE_HOOK "useState hook" b
const [${1:state}, set${1:`!v expand('%:t:r')`}] = useState($2)
endsnippet

这可用于快速创建以下(不正确的)代码:

const [color, setcolor] = useState("green");

问题是setcolor需要驼峰式,像这样:setColor

如何编写此代码段以使扩展的输入大写?

4

2 回答 2

2

我正在测试一些不同的东西,你可以使用:

snippet STATE_HOOK "useState hook" b
const [$1, set${1/\w+/\u$0/g}] = useState("$2")
endsnippet 

它是如何工作的:检查文档我发现你应该用相同的文本覆盖文本但大写,所以\w+需要所有文本(我认为'+'是不必要的)并用\u$0(是相同的文本但大写)覆盖它

在此处输入图像描述

于 2020-09-16T05:51:40.440 回答
-1

字符串喜欢foo-barorfoo_bar很容易变成fooBar并且fooBar很容易变成foo-barorfoo_bar因为这两个部分很容易识别,这为您提供了一个可以使用的结构。

没有这样的事情usecolor。没有分隔符,所有内容都是相同的大小写,因此您可以从该字符串中获得大量有效的驼峰式名称:usecOlor,uSeCoLor等。

你有三个选择:

  1. 驼峰式您的文件名,这样您就不必执行任何转换,
  2. kebab-case 或 snake-case 您的文件名,通过简单的替换使它们易于转换,
  3. 提出广泛的规则并找出如何以令人满意且可重现的方式转换随机字符串。

我会选择1号。

于 2020-09-14T11:32:07.603 回答