RStudio特殊格式注释变色原理及相关使用问题咨询
RStudio注释颜色相关问题解答
1. 变色效果触发原理
你看到的#'开头加@标签变色是Roxygen2文档注释的专属语法高亮,和S4对象调用插槽的@没有关联。
RStudio默认内置了Roxygen2语法的识别规则:所有以#'开头的行都会被判定为R包开发用的帮助文档注释行,@后面跟着的是Roxygen2的预设标签(比如@param、@export、@return等),编辑器会给这类标签单独设置高亮色(多数默认主题是橙色),方便开发者快速区分注释的结构。
2. 其他可触发注释变色的符号/写法
除了Roxygen2的@标签外,还有两类常见的注释高亮触发规则:
- Roxygen2注释内的Markdown语法:现在新版RStudio默认支持Roxygen注释用Markdown格式书写,
#'行内的**加粗内容**、*斜体内容*、`内联代码`、[链接文本](链接地址)都会对应触发不同的高亮效果;另外用{}包裹的内联R代码\code{func()}也会有代码高亮。 - 普通注释的关键词高亮:绝大多数RStudio主题会识别
TODO、FIXME、NOTE这类特殊注释关键词,你写# TODO 后续优化性能时,行内的TODO会单独高亮。
你说的引号在普通注释里不会触发高亮,是因为普通注释的优先级更高,编辑器不会在普通注释里识别字符串语法。
3. 单行闭合注释加可执行代码的写法
R原生语法不支持这种写法,R的#是单行注释符,一旦出现就会把后面到行尾的所有内容都判定为注释,你举的例子#comment# print(summary(df))里的print(summary(df))也会被当成注释不会执行。你图里看到的效果大概率是用户自定义了主题的高亮规则,只是视觉上区分,没有实际的语法作用。如果需要实现单行内部分注释部分执行,只能把注释放在代码后面:print(summary(df)) # comment。
内容的提问来源于stack exchange,提问作者UpAndComing
相关产品推荐
相关产品推荐

