停止 Xcode 将文本转换为超链接?

4
我使用的是Xcode 3.2.1,非常喜欢它,但当我编辑一个带有超链接的文本文件时(例如,带有引用的注释:# see http://example.com),Xcode会将文本转换为可点击的超链接。这使得在编辑超链接时非常麻烦,因为这意味着我无法点击其中的一部分来编辑链接——我必须全部选择并重新输入,或通过反向删除/箭头键多次移动到需要更改的部分。
有人知道如何关闭这个功能吗?我在偏好设置中找不到它,并且已经上网搜索了很多遍,但没有找到解决办法。
3个回答

4

深入研究后,我发现Xcode 3.x将其语法高亮规则隐藏在xclangspec文件中,因此编辑适当的文件将允许您在一定程度上更改规则。

文件存储在这里:

/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources

在该目录中,我打开了BaseSupport.xclangspec文件,并找到了标识URL协议的那一行:

    Syntax = { 
        StartChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";           
        Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;/:@&=+$,-_.!~*'()%#";
        Match =
            "^(acap|afp|afs|cid|data|fax|feed|file|ftp|go|gopher|http|https|imap|ldap|mailserver|mid|modem|news|nntp|opaquelocktoken|pop|prospero|rdar|rtsp|service|sip|soap\\.beep|soap\\.beeps|tel|telnet|tip|tn3270|urn|vemmi|wais|z39\\.50r|z39\\.50s)://([a-zA-Z0-9\\-_.]+/)?[a-zA-Z0-9;/?:@\\&=+$,\\-_.!~*'()%#]+$",
            "^(mailto|im):[a-zA-Z0-9\\-_]+@[a-zA-Z0-9\\-_\\.!%]+$",
            "^radar:[a-zA-Z0-9;/?:@\\&=+$,\\-_.!~*'()%#]+$",
        ); */
        Type = "xcode.syntax.url";
    };  

并将Match =的行更改为:

Match = ();

这样做消除了URL匹配,但没有消除mailto匹配(这在第一个规则下是单独的)。我将其留给读者作为练习 ;-)
显然,我可以更加选择性地进行操作,我认为更改Type行也足够了。此外,未来版本的Xcode可能会覆盖此更改,因此我将不得不调查将更改放入我的BaseSupport.xclangspec副本中,并查看将其放入~/Library/Application Support是否可行。

原来即使在 Xcode 6 中,这仍然有效。唯一的区别是 BaseSupport.xclangspec 现在位于以下位置: /Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources 否则它仍然有效。感谢您的提示! - Bri Bri
...它仍然可以在Xcode 7中工作!但现在你还需要编辑:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/BaseSupport.xclangspec。 - Bri Bri

3
针对于寻找Xcode 7的人,相较于@Zee最初发布的内容,现在已经有了一些变化。
首先,`BaseSupport.xclangspec`文件现在位于`/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources`目录下。
其次,你还需要修改`Built-in Syntax Types.xcsynspec`文件,该文件与`BaseSupport.xclangspec`文件位于同一目录下。打开该文件后,找到注释`MARK: URLs`并删除url标识符。
出于安全考虑,我建议您只需对其进行注释:
// MARK: URLs
//{
//    Identifier = "xcode.syntax.url";
//    Name = "URLs";
//    Color = "0.055 0.055 1.000";
//    IncludeInPrefs = YES;
//    IsLink = YES;
//    URLFormat = "%@";
//},
//{
//    Identifier = "xcode.syntax.url.mail";
//    BasedOn = "xcode.syntax.url";
//    Color = "0.055 0.055 1.000";
//    IncludeInPrefs = NO;
//    IsLink = YES;
//    URLFormat = "mailto:%@";
//},

3

当选择链接中的文本时,请使用选项键,或者更彻底地,关闭文件的语法突出显示。


你知道Xcode存储语法高亮规则的位置吗?我在想是否有一个可编辑的资源文件。 - Zee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接