aboutsummaryrefslogtreecommitdiff
path: root/plugins/language_R.lua
blob: afe3d1e0618b3149dfd190242e116956438f8534 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-- mod-version:3
local syntax = require "core.syntax"

syntax.add{
  name = "R",
  files = {"%.r$", "%.rds$", "%.rda$", "%.rdata$", "%.R$"},
  comment = "#",
  patterns = {
    {pattern = {"#", "\n"}, type = "comment"},
    {pattern = {'"', '"'}, type = "string"},
    {pattern = {"'", "'"}, type = "string"},
    {pattern = "[%a_][%w_]*%f[(]", type = "function"},
    {pattern = "[%a_][%w_]*", type = "symbol"},
    {pattern = "[%+%-=/%*%^%%<>!|&]", type = "operator"},
    {pattern = "0x[%da-fA-F]+", type = "number"},
    {pattern = "-?%d+[%d%.eE]*", type = "number"},
    {pattern = "-?%.?%d+", type = "number"},
  },
  symbols = {
    ["TRUE"] = "literal",
    ["FALSE"] = "literal",
    ["NA"] = "literal",
    ["NULL"] = "literal",
    ["Inf"] = "literal",
    ["if"] = "keyword",
    ["else"] = "keyword",
    ["while"] = "keyword",
    ["function"] = "keyword",
    ["break"] = "keyword",
    ["next"] = "keyword",
    ["repeat"] = "keyword",
    ["in"] = "keyword",
    ["for"] = "keyword",
    ["NA_integer"] = "keyword",
    ["NA_complex"] = "keyword",
    ["NA_character"] = "keyword",
    ["NA_real"] = "keyword"
  }
}