是否可以在Eclipse文本编辑器中禁用对camel case的支持?我想要下一个单词键绑定来选择下一个单词,而不是单词的下一个片段.
我已经放弃了eclipse,因为编辑器不像Mac OS X上的任何其他文本编辑器那样工作.但我真的很想念代码完成,并且我正在尝试让Eclipse适应我的惯例.
谢谢.
标记
使用vim,我觉得cw改变整个单词非常方便.Vim将动作命令和动作动词分开,实现了非常强大的组合.我现在不得不DefaultHandler改为ContentHandler.我自然认为它是"改为下一个大写字母",但我找不到从一个大写字母移动到下一个字母的动作命令.
在这种情况下,我可以使用ctH,但有没有办法改变(或删除等)CamelCase单词的第一部分,无论接下来是哪个大写字母?
是否可以将camel case字符串解析为更具可读性的字符串.
例如:
UPDATE
使用simshaun正则表达式示例我设法使用此规则将数字与文本分开:
function parseCamelCase($str)
{
return preg_replace('/(?!^)[A-Z]{2,}(?=[A-Z][a-z])|[A-Z][a-z]|[0-9]{1,}/', ' $0', $str);
}
//string(65) "customer ID With Some Other JET Words With Number 23rd Text After"
echo parseCamelCase('customerIDWithSomeOtherJETWordsWithNumber23rdTextAfter');
Run Code Online (Sandbox Code Playgroud) 我们对所做的一切都有一个camelCase命名约定 - 从数据库表到对象属性,列,数据库索引和约束.
我们已经在一个新项目上使用这些约定了两个月,一切都很顺利,昨晚突然间,我们的6个数据库中只有一个的所有关系从camelCase转换为小写.重要的是要注意只有转换的约束 - 索引本身保留了camelCase.
因此,如果我们有一个名为someColumn的列和另一个名为someTable.otherColumn的列,它就是这样的:
someColumn => someTable.otherColumn ON DELETE CASCADE ON UPDATE CASCADE
Run Code Online (Sandbox Code Playgroud)
对此:
someColumn => sometable.otherColumn ON DELETE CASCADE ON UPDATE CASCADE
Run Code Online (Sandbox Code Playgroud)
什么可能导致这个?我们无法重现这个问题 - 我们尝试更改随机约束以查看它是否会全部更改它们并且我们尝试重新导入结构并且它很好,从导入中保留camelCase.
我们致力于OSX并部署到CentOS.
编辑:一位开发人员使用不区分大小写的OSX.他尝试从他自己的机器上的导出中重新导入数据库,它仍然没问题,因此:从不区分大小写的机器导入转储到区分大小写的CentOS并没有破坏.重启mysqld也无法重现这个bug.所有强制小写的mysql设置都关闭.迄今为止,我们无法再次实现这一目标.
编辑2:请注意,这只发生在我们的CentOS开发服务器上 - 使用不区分大小写的操作系统的开发人员之前已经从区分大小写的系统中的其他人导入了他的数据库,并且每次都很好.
我想将一个CamelCase字符串分隔成一个新字符串中以空格分隔的单词.这是我到目前为止:
var camelCaps: String {
guard self.count > 0 else { return self }
var newString: String = ""
let uppercase = CharacterSet.uppercaseLetters
let first = self.unicodeScalars.first!
newString.append(Character(first))
for scalar in self.unicodeScalars.dropFirst() {
if uppercase.contains(scalar) {
newString.append(" ")
}
let character = Character(scalar)
newString.append(character)
}
return newString
}
let aCamelCaps = "aCamelCaps"
let camelCapped = aCamelCaps.camelCaps // Produce: "a Camel Caps"
let anotherCamelCaps = "ÄnotherCamelCaps"
let anotherCamelCapped = anotherCamelCaps.camelCaps // "Änother Camel Caps"
Run Code Online (Sandbox Code Playgroud)
我倾向于怀疑这可能不是转换为以空格分隔的单词的最有效方式,如果我称之为紧密循环,或1000次.在Swift中有更有效的方法吗?
[编辑1:]我需要的解决方案对于Unicode标量应保持通用,而不是特定于罗马ASCII"A..Z".
[编辑2:]解决方案也应该跳过第一个字母,即不要在第一个字母前添加一个空格.
[编辑3:]更新了Swift 4语法,并添加了大写字母的缓存,从而提高了非常长的字符串和紧密循环的性能.
假设我有一个函数可以转换kebab-case为camelCase:
camelize("my-kebab-string") == 'myKebabString';
Run Code Online (Sandbox Code Playgroud)
我快到了,但我的代码也输出大写的第一个字母:
function camelize(str){
let arr = str.split('-');
let capital = arr.map(item=> item.charAt(0).toUpperCase() + item.slice(1).toLowerCase());
let capitalString = capital.join("");
console.log(capitalString);
}
camelize("my-kebab-string");
Run Code Online (Sandbox Code Playgroud) 我需要一个带字符串和"pascal case"的函数.新单词开始的唯一指标是下划线.以下是一些需要清理的示例字符串:
我开始研究一个使第一个字符为大写的函数:
public string FirstCharacterUpper(string value)
{
if (value == null || value.Length == 0)
return string.Empty;
if (value.Length == 1)
return value.ToUpper();
var firstChar = value.Substring(0, 1).ToUpper();
return firstChar + value.Substring(1, value.Length - 1);
}
Run Code Online (Sandbox Code Playgroud)
上面的函数没有做的是删除下划线和"ToUpper"字符右下角.
此外,任何有关如何使用没有任何指标(如下划线)的字符串的概念.例如:
这里的主要挑战是确定一个词的结束和另一个词的开始.我想我需要某种查找字典来确定新单词的起源位置?我们那里有图书馆可以做这种事吗?
谢谢,
保罗
我想使用一些预定义的库将任何字符串转换为修改后的Camel case或Title case,而不是编写自己的函数.
例如"HI tHiS is SomE Statement",以"Hi This Is Some Statement"
正则表达式或任何标准库将帮助我.
我在eclipse中找到了某些库函数,就像STRING.toCamelCase();存在这样的东西吗?
我想将项目中的几个文件转换camelCase为underscore_case.
我想有一个只需要文件名才能工作的在线人.
camelcasing ×10
string ×4
regex ×3
arrays ×1
awk ×1
bash ×1
c# ×1
constraints ×1
eclipse ×1
foreign-keys ×1
function ×1
ios ×1
java ×1
javascript ×1
key-bindings ×1
macos ×1
mysql ×1
parsing ×1
php ×1
sed ×1
swift ×1
vim ×1