File: scad.yaml

package info (click to toggle)
micro 2.0.15-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,828 kB
  • sloc: sh: 247; makefile: 77; xml: 53
file content (53 lines) | stat: -rw-r--r-- 1,928 bytes parent folder | download | duplicates (2)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
filetype: OpenSCAD

# OpenSCAD is a functional programming language used for representing
# 2D/3D models for use in the program of the same name.
#
# The following documents were used as reference material:
# https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language
# https://openscad.org/cheatsheet/index.html

detect:
    filename: "\\.scad$"

rules:
    - identifier: "\\b(function|module) +[a-z0-9_]+"

    - statement: "\\b(abs|acos|asin|assert|atan|atan2|ceil|child|children|chr|circle|color|concat|cos|cross|cube|cylinder|difference|dxf_cross|dxf_dim|each|echo|else|exp|floor|for|function|hull|if|import|import_dxf|intersection|intersection_for|is_bool|is_function|is_list|is_num|is_string|is_undef|len|let|linear_extrude|ln|log|lookup|max|min|minkowski|mirror|module|multmatrix|norm|offset|ord|parent_module|polygon|polyhedron|pow|projection|rands|render|resize|rotate|rotate_extrude|round|scale|search|sign|sin|sphere|sqrt|square|str|surface|tan|text|translate|union|version|version_num)\\b"

    - symbol: "[,\\.;:?]"
    - symbol.operator: "[-+*/%^<>!=]|[<=>!]=|&&|\\|\\|"
    - symbol.brackets: "[{(<>)}]|\\[|\\]"

    # modifiers that change interpretation of the subtree after it
    - special: "[#%!*]"

    # special variables start with a dollar sign
    - special: "\\B\\$[a-z]+\\b"

    - preproc:
        start: "^ *(use|include) <"
        end: ">;?"
        rules: []

    - constant.number: "\\b[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?|PI|inf|nan\\b"
    - constant.bool: "\\b(true|false)\\b"
    - constant: "\\b(undef)\\b"
    - constant.string:
        start: "\""
        end: "\""
        skip: "\\\\."
        rules:
            - constant.specialChar: "\\\\."

    - comment:
        start: "//"
        end: "$"
        rules:
            - todo: "(TODO|XXX|FIXME):?"

    - comment:
        start: "/\\*"
        end: "\\*/"
        rules:
            - todo: "(TODO|XXX|FIXME):?"