File: theme_invert.lua

package info (click to toggle)
highlight 4.10-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,556 kB
  • sloc: cpp: 27,579; makefile: 411; sh: 341; ansic: 264; php: 236; python: 217; ruby: 132; perl: 61; tcl: 1
file content (57 lines) | stat: -rw-r--r-- 1,483 bytes parent folder | download | duplicates (3)
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
54
55
56
57
--[[

Sample plugin file for highlight 3.1

Invert colours of the original theme

USAGE: highlight -I main.cpp --plug-in=plugin.lua
]]

Description="Invert colours of the original theme"

Categories = {"format" }


-- function to update theme definition
-- optional parameter: theme description
function themeUpdate()

  function invert(colour)
    if string.match(colour, "#%x+")==nil then
      return "#000000"
    end
    rr=255 - ("0x"..string.match(colour, "%x%x", 2))
    gg=255 - ("0x"..string.match(colour, "%x%x", 4))
    bb=255 - ("0x"..string.match(colour, "%x%x", 6))
    return string.format("#%02x%02x%02x", rr, gg, bb)
  end

  Description = Description .. " (inverted)"

  Default.Colour=invert(Default.Colour)
  Canvas.Colour=invert(Canvas.Colour)
  Number.Colour=invert(Number.Colour)
  Escape.Colour=invert(Escape.Colour)
  String.Colour=invert(String.Colour)
  StringPreProc.Colour=invert(StringPreProc.Colour)
  BlockComment.Colour=invert(BlockComment.Colour)
  LineComment.Colour=invert(LineComment.Colour)
  PreProcessor.Colour=invert(PreProcessor.Colour)
  LineNum.Colour=invert(LineNum.Colour)
  Operator.Colour=invert(Operator.Colour)

  for k, v in pairs(Keywords) do
    v.Colour=invert(v.Colour)
  end
end


--The Plugins array assigns code chunks to themes or language definitions.
--The chunks are interpreted after the theme or lang file were parsed,
--so you can refer to elements of these files

Plugins={

  { Type="theme", Chunk=themeUpdate }

}