The default highlighting commands are stored in two internal data frames
cmd_latex and cmd_html : | library(highr)
highr:::cmd_latex
## cmd1 cmd2
## COMMENT \\hlcom{ }
## FUNCTION \\hlkwa{ }
## IF \\hlkwa{ }
## ELSE \\hlkwa{ }
## WHILE \\hlkwa{ }
## FOR \\hlkwa{ }
## IN \\hlkwa{ }
## BREAK \\hlkwa{ }
## REPEAT \\hlkwa{ }
## NEXT \\hlkwa{ }
## NULL_CONST \\hlkwa{ }
## LEFT_ASSIGN \\hlkwb{ }
## EQ_ASSIGN \\hlkwb{ }
## RIGHT_ASSIGN \\hlkwb{ }
## SYMBOL_FORMALS \\hlkwc{ }
## SYMBOL_SUB \\hlkwc{ }
## SLOT \\hlkwc{ }
## SYMBOL_FUNCTION_CALL \\hlkwd{ }
## NUM_CONST \\hlnum{ }
## '+' \\hlopt{ }
## '-' \\hlopt{ }
## '*' \\hlopt{ }
## '/' \\hlopt{ }
## '^' \\hlopt{ }
## '$' \\hlopt{ }
## '@' \\hlopt{ }
## ':' \\hlopt{ }
## '?' \\hlopt{ }
## '~' \\hlopt{ }
## '!' \\hlopt{ }
## SPECIAL \\hlopt{ }
## GT \\hlopt{ }
## GE \\hlopt{ }
## LT \\hlopt{ }
## LE \\hlopt{ }
## EQ \\hlopt{ }
## NE \\hlopt{ }
## AND \\hlopt{ }
## AND2 \\hlopt{ }
## OR \\hlopt{ }
## OR2 \\hlopt{ }
## NS_GET \\hlopt{ }
## NS_GET_INT \\hlopt{ }
## STANDARD \\hlstd{ }
## STR_CONST \\hlstr{ }
|
This data frame is passed to the markup argument in hilight() , so we are
free to pass a modified version there. Suppose I want to use the command
\my<*> instead of \hl<*> : | m = highr:::cmd_latex
m[, 1] = sub('\\hl', '\\my', m[, 1], fixed = TRUE)
head(m)
## cmd1 cmd2
## COMMENT \\mycom{ }
## FUNCTION \\mykwa{ }
## IF \\mykwa{ }
## ELSE \\mykwa{ }
## WHILE \\mykwa{ }
## FOR \\mykwa{ }
|
Then | hilight("x = 1+1 # a comment") # default markup
## [1] "\\hlstd{x} \\hlkwb{=} \\hlnum{1}\\hlopt{+}\\hlnum{1} \\hlcom{# a comment}"
hilight("x = 1+1 # a comment", markup = m) # custom markup
## [1] "\\mystd{x} \\mykwb{=} \\mynum{1}\\myopt{+}\\mynum{1} \\mycom{# a comment}"
|