pygments.rb 0.6.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/cache-lexers.rb +1 -1
  6. data/circle.yml +7 -0
  7. data/lib/pygments/lexer.rb +3 -3
  8. data/lib/pygments/popen.rb +67 -30
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +2 -1
  11. data/test/test_pygments.rb +16 -16
  12. data/vendor/pygments-main/AUTHORS +54 -8
  13. data/vendor/pygments-main/CHANGES +247 -25
  14. data/vendor/pygments-main/LICENSE +1 -1
  15. data/vendor/pygments-main/Makefile +15 -6
  16. data/vendor/pygments-main/README.rst +39 -0
  17. data/vendor/pygments-main/REVISION +1 -1
  18. data/vendor/pygments-main/TODO +0 -3
  19. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  20. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  21. data/vendor/pygments-main/doc/conf.py +3 -11
  22. data/vendor/pygments-main/doc/docs/api.rst +15 -0
  23. data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
  24. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
  25. data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
  26. data/vendor/pygments-main/doc/docs/java.rst +7 -7
  27. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
  28. data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
  29. data/vendor/pygments-main/doc/docs/styles.rst +58 -0
  30. data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
  31. data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
  32. data/vendor/pygments-main/doc/faq.rst +17 -21
  33. data/vendor/pygments-main/doc/index.rst +12 -11
  34. data/vendor/pygments-main/doc/languages.rst +10 -7
  35. data/vendor/pygments-main/external/autopygmentize +9 -6
  36. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
  37. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  38. data/vendor/pygments-main/external/moin-parser.py +1 -1
  39. data/vendor/pygments-main/external/rst-directive.py +1 -1
  40. data/vendor/pygments-main/pygmentize +2 -1
  41. data/vendor/pygments-main/pygments/__init__.py +14 -15
  42. data/vendor/pygments-main/pygments/cmdline.py +188 -113
  43. data/vendor/pygments-main/pygments/console.py +13 -13
  44. data/vendor/pygments-main/pygments/filter.py +7 -7
  45. data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
  46. data/vendor/pygments-main/pygments/formatter.py +5 -5
  47. data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
  48. data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
  49. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  50. data/vendor/pygments-main/pygments/formatters/html.py +63 -51
  51. data/vendor/pygments-main/pygments/formatters/img.py +25 -22
  52. data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
  53. data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
  54. data/vendor/pygments-main/pygments/formatters/other.py +5 -7
  55. data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
  56. data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
  57. data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
  58. data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
  59. data/vendor/pygments-main/pygments/lexer.py +120 -34
  60. data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
  61. data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
  62. data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
  63. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
  64. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
  65. data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
  66. data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
  67. data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
  68. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  69. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  70. data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
  71. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
  72. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
  73. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
  74. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
  75. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
  76. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  77. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  78. data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
  80. data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
  81. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  82. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  83. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  84. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
  86. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  87. data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
  88. data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
  89. data/vendor/pygments-main/pygments/lexers/business.py +594 -0
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
  94. data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
  96. data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
  97. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
  99. data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
  100. data/vendor/pygments-main/pygments/lexers/css.py +689 -0
  101. data/vendor/pygments-main/pygments/lexers/d.py +251 -0
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
  103. data/vendor/pygments-main/pygments/lexers/data.py +555 -0
  104. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  105. data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
  106. data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
  107. data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
  108. data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
  109. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  110. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
  121. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  122. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
  123. data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
  124. data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
  125. data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
  126. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  127. data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
  128. data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
  129. data/vendor/pygments-main/pygments/lexers/html.py +602 -0
  130. data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
  131. data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
  132. data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  134. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
  135. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  136. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  137. data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
  138. data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
  139. data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
  140. data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
  141. data/vendor/pygments-main/pygments/lexers/make.py +202 -0
  142. data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
  143. data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
  144. data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
  145. data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
  146. data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
  147. data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
  148. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  149. data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
  150. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  151. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  152. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  153. data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
  154. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  155. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  156. data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
  157. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  158. data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
  159. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  160. data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
  161. data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
  162. data/vendor/pygments-main/pygments/lexers/php.py +267 -0
  163. data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
  164. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  165. data/vendor/pygments-main/pygments/lexers/python.py +938 -0
  166. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  167. data/vendor/pygments-main/pygments/lexers/r.py +453 -0
  168. data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
  169. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  170. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  171. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  172. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  173. data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
  174. data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
  175. data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
  176. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  177. data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
  178. data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
  179. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  180. data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
  181. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  182. data/vendor/pygments-main/pygments/lexers/special.py +6 -2
  183. data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
  184. data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
  185. data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
  186. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  187. data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
  188. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  189. data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
  190. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  191. data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
  192. data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
  193. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  194. data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
  195. data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
  196. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  197. data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
  198. data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
  199. data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
  200. data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  202. data/vendor/pygments-main/pygments/modeline.py +5 -2
  203. data/vendor/pygments-main/pygments/plugin.py +1 -1
  204. data/vendor/pygments-main/pygments/regexopt.py +92 -0
  205. data/vendor/pygments-main/pygments/scanner.py +3 -2
  206. data/vendor/pygments-main/pygments/sphinxext.py +11 -6
  207. data/vendor/pygments-main/pygments/style.py +41 -4
  208. data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
  209. data/vendor/pygments-main/pygments/styles/algol.py +63 -0
  210. data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
  211. data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
  212. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  213. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  215. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  216. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  221. data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
  222. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  223. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  224. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  225. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  226. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  227. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  228. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  229. data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
  230. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/sas.py +41 -0
  232. data/vendor/pygments-main/pygments/styles/stata.py +37 -0
  233. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  238. data/vendor/pygments-main/pygments/token.py +31 -16
  239. data/vendor/pygments-main/pygments/unistring.py +141 -65
  240. data/vendor/pygments-main/pygments/util.py +129 -33
  241. data/vendor/pygments-main/requirements.txt +5 -0
  242. data/vendor/pygments-main/scripts/check_sources.py +25 -40
  243. data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
  244. data/vendor/pygments-main/scripts/find_error.py +1 -0
  245. data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
  246. data/vendor/pygments-main/setup.cfg +3 -0
  247. data/vendor/pygments-main/setup.py +17 -30
  248. data/vendor/pygments-main/tox.ini +7 -0
  249. metadata +159 -387
  250. data/vendor/pygments-main/ez_setup.py +0 -382
  251. data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
  252. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
  253. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
  254. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
  255. data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
  256. data/vendor/pygments-main/scripts/find_codetags.py +0 -213
  257. data/vendor/pygments-main/scripts/find_error.py +0 -173
  258. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
  259. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
  260. data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
  261. data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
  262. data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
  263. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
  264. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
  265. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
  266. data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
  267. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
  268. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
  269. data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
  270. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
  271. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
  272. data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
  273. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
  274. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
  275. data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
  276. data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
  277. data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
  278. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
  279. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
  280. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
  281. data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
  282. data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
  283. data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
  284. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
  285. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
  286. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
  287. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
  288. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
  289. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
  290. data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
  291. data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
  292. data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
  293. data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
  294. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
  295. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
  296. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
  297. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
  298. data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
  299. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
  300. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
  301. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
  302. data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
  303. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
  304. data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
  305. data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
  306. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
  307. data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
  308. data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
  309. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
  310. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
  311. data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
  312. data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
  313. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
  314. data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
  315. data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
  316. data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
  317. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
  318. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
  319. data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
  320. data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
  321. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
  322. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
  323. data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
  324. data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
  325. data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
  326. data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
  327. data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
  328. data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
  329. data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
  330. data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
  331. data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
  332. data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
  333. data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
  334. data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
  335. data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
  336. data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
  337. data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
  338. data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
  339. data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
  340. data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
  341. data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
  342. data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
  343. data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
  344. data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
  345. data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
  346. data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
  347. data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
  348. data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
  349. data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
  350. data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
  351. data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
  352. data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
  353. data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
  354. data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
  355. data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
  356. data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
  357. data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
  358. data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
  359. data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
  360. data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
  361. data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
  362. data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
  363. data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
  364. data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
  365. data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
  366. data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
  367. data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
  368. data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
  369. data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
  370. data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
  371. data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
  372. data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
  373. data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
  374. data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
  375. data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
  376. data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
  377. data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
  378. data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
  379. data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
  380. data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
  381. data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
  382. data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
  383. data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
  384. data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
  385. data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
  386. data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
  387. data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
  388. data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
  389. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
  390. data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
  391. data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
  392. data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
  393. data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
  394. data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
  395. data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
  396. data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
  397. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
  398. data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
  399. data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
  400. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
  401. data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
  402. data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
  403. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
  404. data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
  405. data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
  406. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
  407. data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
  408. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
  409. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
  410. data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
  411. data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
  412. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
  413. data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
  414. data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
  415. data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
  416. data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
  417. data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
  418. data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
  419. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
  420. data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
  421. data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
  422. data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
  423. data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
  424. data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
  425. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
  426. data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
  427. data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
  428. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
  429. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
  430. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
  431. data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
  432. data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
  433. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
  434. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
  435. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
  436. data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
  437. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
  438. data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
  439. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
  440. data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
  441. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
  442. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
  443. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
  444. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
  445. data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
  446. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
  447. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
  448. data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
  449. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
  450. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
  451. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
  452. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
  453. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
  454. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
  455. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
  456. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
  457. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
  458. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
  459. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
  460. data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
  461. data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
  462. data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
  463. data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
  464. data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
  465. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
  466. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
  467. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
  468. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
  469. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
  470. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
  471. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
  472. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
  473. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
  474. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
  475. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
  476. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
  477. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
  478. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
  479. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
  480. data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
  481. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
  482. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
  483. data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
  484. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
  485. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
  486. data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
  487. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
  488. data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
  489. data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
  490. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
  491. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
  492. data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
  493. data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
  494. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
  495. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
  496. data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
  497. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
  498. data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
  499. data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
  500. data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
  501. data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
  502. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
  503. data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
  504. data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
  505. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
  506. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
  507. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
  508. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
  509. data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
  510. data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
  511. data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
  512. data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
  513. data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
  514. data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
  515. data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
  516. data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
  517. data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
  518. data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
  519. data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
  520. data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
  521. data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
  522. data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
  523. data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
  524. data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
  525. data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
  526. data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
  527. data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
  528. data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
  529. data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
  530. data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
  531. data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
  532. data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
  533. data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
  534. data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
  535. data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
  536. data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
  537. data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
  538. data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
  539. data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
  540. data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
  541. data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
  542. data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
  543. data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
  544. data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
  545. data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
  546. data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
  547. data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
  548. data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
  549. data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
  550. data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
  551. data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
  552. data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
  553. data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
  554. data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
  555. data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
  556. data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
  557. data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
  558. data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
  559. data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
  560. data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
  561. data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
  562. data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
  563. data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
  564. data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
  565. data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
  566. data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
  567. data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
  568. data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
  569. data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
  570. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
  571. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
  572. data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
  573. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
  574. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
  575. data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
  576. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
  577. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
  578. data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
  579. data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
  580. data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
  581. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
  582. data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
  583. data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
  584. data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
  585. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
  586. data/vendor/pygments-main/tests/run.py +0 -44
  587. data/vendor/pygments-main/tests/string_asserts.py +0 -22
  588. data/vendor/pygments-main/tests/support.py +0 -15
  589. data/vendor/pygments-main/tests/support/tags +0 -36
  590. data/vendor/pygments-main/tests/test_basic_api.py +0 -309
  591. data/vendor/pygments-main/tests/test_cfm.py +0 -46
  592. data/vendor/pygments-main/tests/test_clexer.py +0 -236
  593. data/vendor/pygments-main/tests/test_cmdline.py +0 -106
  594. data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
  595. data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
  596. data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
  597. data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
  598. data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
  599. data/vendor/pygments-main/tests/test_perllexer.py +0 -137
  600. data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
  601. data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
  602. data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
  603. data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
  604. data/vendor/pygments-main/tests/test_token.py +0 -46
  605. data/vendor/pygments-main/tests/test_using_api.py +0 -40
  606. data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -1,187 +0,0 @@
1
- //+------------------------------------------------------------------+
2
- //| PeriodConverter.mq4 |
3
- //| Copyright 2006-2014, MetaQuotes Software Corp. |
4
- //| http://www.metaquotes.net |
5
- //+------------------------------------------------------------------+
6
- #property copyright "2006-2014, MetaQuotes Software Corp."
7
- #property link "http://www.mql4.com"
8
- #property description "Period Converter to updated format of history base"
9
- #property strict
10
- #property show_inputs
11
- #include <WinUser32.mqh>
12
-
13
- input int InpPeriodMultiplier=3; // Period multiplier factor
14
- int ExtHandle=-1;
15
- //+------------------------------------------------------------------+
16
- //| script program start function |
17
- //+------------------------------------------------------------------+
18
- void OnStart()
19
- {
20
- datetime time0;
21
- ulong last_fpos=0;
22
- long last_volume=0;
23
- int i,start_pos,periodseconds;
24
- int hwnd=0,cnt=0;
25
- //---- History header
26
- int file_version=401;
27
- string c_copyright;
28
- string c_symbol=Symbol();
29
- int i_period=Period()*InpPeriodMultiplier;
30
- int i_digits=Digits;
31
- int i_unused[13];
32
- MqlRates rate;
33
- //---
34
- ExtHandle=FileOpenHistory(c_symbol+(string)i_period+".hst",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_ANSI);
35
- if(ExtHandle<0)
36
- return;
37
- c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
38
- ArrayInitialize(i_unused,0);
39
- //--- write history file header
40
- FileWriteInteger(ExtHandle,file_version,LONG_VALUE);
41
- FileWriteString(ExtHandle,c_copyright,64);
42
- FileWriteString(ExtHandle,c_symbol,12);
43
- FileWriteInteger(ExtHandle,i_period,LONG_VALUE);
44
- FileWriteInteger(ExtHandle,i_digits,LONG_VALUE);
45
- FileWriteInteger(ExtHandle,0,LONG_VALUE);
46
- FileWriteInteger(ExtHandle,0,LONG_VALUE);
47
- FileWriteArray(ExtHandle,i_unused,0,13);
48
- //--- write history file
49
- periodseconds=i_period*60;
50
- start_pos=Bars-1;
51
- rate.open=Open[start_pos];
52
- rate.low=Low[start_pos];
53
- rate.high=High[start_pos];
54
- rate.tick_volume=(long)Volume[start_pos];
55
- rate.spread=0;
56
- rate.real_volume=0;
57
- //--- normalize open time
58
- rate.time=Time[start_pos]/periodseconds;
59
- rate.time*=periodseconds;
60
- for(i=start_pos-1; i>=0; i--)
61
- {
62
- if(IsStopped())
63
- break;
64
- time0=Time[i];
65
- //--- history may be updated
66
- if(i==0)
67
- {
68
- //--- modify index if history was updated
69
- if(RefreshRates())
70
- i=iBarShift(NULL,0,time0);
71
- }
72
- //---
73
- if(time0>=rate.time+periodseconds || i==0)
74
- {
75
- if(i==0 && time0<rate.time+periodseconds)
76
- {
77
- rate.tick_volume+=(long)Volume[0];
78
- if(rate.low>Low[0])
79
- rate.low=Low[0];
80
- if(rate.high<High[0])
81
- rate.high=High[0];
82
- rate.close=Close[0];
83
- }
84
- last_fpos=FileTell(ExtHandle);
85
- last_volume=(long)Volume[i];
86
- FileWriteStruct(ExtHandle,rate);
87
- cnt++;
88
- if(time0>=rate.time+periodseconds)
89
- {
90
- rate.time=time0/periodseconds;
91
- rate.time*=periodseconds;
92
- rate.open=Open[i];
93
- rate.low=Low[i];
94
- rate.high=High[i];
95
- rate.close=Close[i];
96
- rate.tick_volume=last_volume;
97
- }
98
- }
99
- else
100
- {
101
- rate.tick_volume+=(long)Volume[i];
102
- if(rate.low>Low[i])
103
- rate.low=Low[i];
104
- if(rate.high<High[i])
105
- rate.high=High[i];
106
- rate.close=Close[i];
107
- }
108
- }
109
- FileFlush(ExtHandle);
110
- Print(cnt," record(s) written");
111
- //--- collect incoming ticks
112
- datetime last_time=LocalTime()-5;
113
- while(!IsStopped())
114
- {
115
- datetime cur_time=LocalTime();
116
- //--- check for new rates
117
- if(RefreshRates())
118
- {
119
- time0=Time[0];
120
- FileSeek(ExtHandle,last_fpos,SEEK_SET);
121
- //--- is there current bar?
122
- if(time0<rate.time+periodseconds)
123
- {
124
- rate.tick_volume+=(long)Volume[0]-last_volume;
125
- last_volume=(long)Volume[0];
126
- if(rate.low>Low[0])
127
- rate.low=Low[0];
128
- if(rate.high<High[0])
129
- rate.high=High[0];
130
- rate.close=Close[0];
131
- }
132
- else
133
- {
134
- //--- no, there is new bar
135
- rate.tick_volume+=(long)Volume[1]-last_volume;
136
- if(rate.low>Low[1])
137
- rate.low=Low[1];
138
- if(rate.high<High[1])
139
- rate.high=High[1];
140
- //--- write previous bar remains
141
- FileWriteStruct(ExtHandle,rate);
142
- last_fpos=FileTell(ExtHandle);
143
- //----
144
- rate.time=time0/periodseconds;
145
- rate.time*=periodseconds;
146
- rate.open=Open[0];
147
- rate.low=Low[0];
148
- rate.high=High[0];
149
- rate.close=Close[0];
150
- rate.tick_volume=(long)Volume[0];
151
- last_volume=rate.tick_volume;
152
- }
153
- //----
154
- FileWriteStruct(ExtHandle,rate);
155
- FileFlush(ExtHandle);
156
- //---
157
- if(hwnd==0)
158
- {
159
- hwnd=WindowHandle(Symbol(),i_period);
160
- if(hwnd!=0)
161
- Print("Chart window detected");
162
- }
163
- //--- refresh window not frequently than 1 time in 2 seconds
164
- if(hwnd!=0 && cur_time-last_time>=2)
165
- {
166
- PostMessageA(hwnd,WM_COMMAND,33324,0);
167
- last_time=cur_time;
168
- }
169
- }
170
- Sleep(50);
171
- }
172
- //---
173
- }
174
- //+------------------------------------------------------------------+
175
- //| |
176
- //+------------------------------------------------------------------+
177
- void OnDeinit(const int reason)
178
- {
179
- //---
180
- if(ExtHandle>=0)
181
- {
182
- FileClose(ExtHandle);
183
- ExtHandle=-1;
184
- }
185
- //---
186
- }
187
- //+------------------------------------------------------------------+
@@ -1,123 +0,0 @@
1
- //+------------------------------------------------------------------+
2
- //| Array.mqh |
3
- //| Copyright 2009-2013, MetaQuotes Software Corp. |
4
- //| http://www.mql4.com |
5
- //+------------------------------------------------------------------+
6
- #include <Object.mqh>
7
- //+------------------------------------------------------------------+
8
- //| Class CArray |
9
- //| Purpose: Base class of dynamic arrays. |
10
- //| Derives from class CObject. |
11
- //+------------------------------------------------------------------+
12
- class CArray : public CObject
13
- {
14
- protected:
15
- int m_step_resize; // increment size of the array
16
- int m_data_total; // number of elements
17
- int m_data_max; // maximmum size of the array without memory reallocation
18
- int m_sort_mode; // mode of array sorting
19
-
20
- public:
21
- CArray(void);
22
- ~CArray(void);
23
- //--- methods of access to protected data
24
- int Step(void) const { return(m_step_resize); }
25
- bool Step(const int step);
26
- int Total(void) const { return(m_data_total); }
27
- int Available(void) const { return(m_data_max-m_data_total); }
28
- int Max(void) const { return(m_data_max); }
29
- bool IsSorted(const int mode=0) const { return(m_sort_mode==mode); }
30
- int SortMode(void) const { return(m_sort_mode); }
31
- //--- cleaning method
32
- void Clear(void) { m_data_total=0; }
33
- //--- methods for working with files
34
- virtual bool Save(const int file_handle);
35
- virtual bool Load(const int file_handle);
36
- //--- sorting method
37
- void Sort(const int mode=0);
38
-
39
- protected:
40
- virtual void QuickSort(int beg,int end,const int mode=0) { }
41
- };
42
- //+------------------------------------------------------------------+
43
- //| Constructor |
44
- //+------------------------------------------------------------------+
45
- CArray::CArray(void) : m_step_resize(16),
46
- m_data_total(0),
47
- m_data_max(0),
48
- m_sort_mode(-1)
49
- {
50
- }
51
- //+------------------------------------------------------------------+
52
- //| Destructor |
53
- //+------------------------------------------------------------------+
54
- CArray::~CArray(void)
55
- {
56
- }
57
- //+------------------------------------------------------------------+
58
- //| Method Set for variable m_step_resize |
59
- //+------------------------------------------------------------------+
60
- bool CArray::Step(const int step)
61
- {
62
- //--- check
63
- if(step>0)
64
- {
65
- m_step_resize=step;
66
- return(true);
67
- }
68
- //--- failure
69
- return(false);
70
- }
71
- //+------------------------------------------------------------------+
72
- //| Sorting an array in ascending order |
73
- //+------------------------------------------------------------------+
74
- void CArray::Sort(const int mode)
75
- {
76
- //--- check
77
- if(IsSorted(mode))
78
- return;
79
- m_sort_mode=mode;
80
- if(m_data_total<=1)
81
- return;
82
- //--- sort
83
- QuickSort(0,m_data_total-1,mode);
84
- }
85
- //+------------------------------------------------------------------+
86
- //| Writing header of array to file |
87
- //+------------------------------------------------------------------+
88
- bool CArray::Save(const int file_handle)
89
- {
90
- //--- check handle
91
- if(file_handle!=INVALID_HANDLE)
92
- {
93
- //--- write start marker - 0xFFFFFFFFFFFFFFFF
94
- if(FileWriteLong(file_handle,-1)==sizeof(long))
95
- {
96
- //--- write array type
97
- if(FileWriteInteger(file_handle,Type(),INT_VALUE)==INT_VALUE)
98
- return(true);
99
- }
100
- }
101
- //--- failure
102
- return(false);
103
- }
104
- //+------------------------------------------------------------------+
105
- //| Reading header of array from file |
106
- //+------------------------------------------------------------------+
107
- bool CArray::Load(const int file_handle)
108
- {
109
- //--- check handle
110
- if(file_handle!=INVALID_HANDLE)
111
- {
112
- //--- read and check start marker - 0xFFFFFFFFFFFFFFFF
113
- if(FileReadLong(file_handle)==-1)
114
- {
115
- //--- read and check array type
116
- if(FileReadInteger(file_handle,INT_VALUE)==Type())
117
- return(true);
118
- }
119
- }
120
- //--- failure
121
- return(false);
122
- }
123
- //+------------------------------------------------------------------+
@@ -1,43 +0,0 @@
1
- msc {
2
- hscale=5;
3
-
4
- //test comment
5
-
6
- a,b,c,d;
7
-
8
- /* another
9
- comment
10
- goes here */ /* too */ // now
11
-
12
- ... [label="test1", id="1"];
13
- --- [label="test2", id="2"];
14
- ||| [label="test3", id="2"];
15
- a ABOX b;
16
- a--b [label="test4", id="2"];
17
- a == b [label="test5", id="2"];
18
- a .. b [label="test6", id="2"];
19
- a::b [label="test7", id="2"];
20
- a<<=>> b [label="test8", id="2"],
21
- b <->c [label="test9", id="2"],
22
- b RBOX c;
23
- a BOX d;
24
- a<=> b [label="test10", id="2"];
25
- a <<>> b [label="test11", id="2"];
26
- a<:>b [label="test12", id="2"];
27
- a->b [label="test13", id="2"];
28
- a =>> b [label="test14", id="2"],
29
- b >> c [label="test15", id="2"],
30
- a=> b [label="test16", id="2"];
31
- a :>b [label="test17", id="2"];
32
- a-x b [label="test18", id="2"];
33
- a -Xb [label="test19", id="2"];
34
- a<- b [label="test20", id="2"];
35
- a <<=b [label="test21", id="2"];
36
- a<< b [label="test22", id="2"];
37
- a <= b [label="test23", id="2"];
38
- a<: b [label="test24", id="2"];
39
- a -xb [label="test25", id="2"];
40
- a-X b [ label="test26",id="2" ];
41
- a->* [label="test27" , id="2"];
42
- *<-b [label="test28",id="28"];
43
- }
@@ -1,57 +0,0 @@
1
- | | |
2
- "Informal by Nature"
3
- [ * * * ]
4
- by
5
- [ * * * ]
6
- David Corbett
7
-
8
- [This is a [nested] comment.]
9
-
10
- Section 1 - Use option translation
11
-
12
- Use maximum tests of at least 100 translates as (-
13
- @c
14
- Constant MAX_TESTS = {N}; —). | Section 2
15
-
16
- A room has a number called size.
17
-
18
- The Kitchen is a room. "A nondescript kitchen.“ The Kitchen has size 2.
19
-
20
- When play begins:
21
- say "Testing:[line break]";
22
- test 0.
23
-
24
- To test (N — number): (—
25
- if (Test({N}) == (+size of the Kitchen [this should succeed]+)) {-open—brace}
26
- print ”Success.^”;
27
- {-close-brace} else {
28
- print “Failure.^";
29
- }
30
- ]; ! You shouldn't end a routine within a phrase definition, but it works.
31
- [ Unused;
32
- #Include "\
33
- @p \
34
- "; ! At signs hold no power here.
35
- ! Of course, the file "@p .h" must exist.
36
- -).
37
-
38
- Include (-!% This is not ICL.
39
-
40
- [ Test x;
41
- if (x) {x++;}
42
- {–! Single line comment.}
43
- @inc x;
44
- @p At signs.
45
- ...
46
- @Purpose: ...
47
- ...
48
- @-...
49
- @c ...
50
- @inc x;
51
- @c
52
- @c
53
- return x;
54
- ];
55
- @Purpose: ...
56
- @-------------------------------------------------------------------------------
57
- -).
@@ -1,1010 +0,0 @@
1
- import glib2, gtk2, gdk2, gtksourceview, dialogs, os, pango, osproc, strutils
2
- import pegs, streams
3
- import settings, types, cfg, search
4
-
5
- {.push callConv:cdecl.}
6
-
7
- const
8
- NimrodProjectExt = ".nimprj"
9
-
10
- var win: types.MainWin
11
- win.Tabs = @[]
12
-
13
- search.win = addr(win)
14
-
15
- var lastSession: seq[string] = @[]
16
-
17
- var confParseFail = False # This gets set to true
18
- # When there is an error parsing the config
19
-
20
- # Load the settings
21
- try:
22
- win.settings = cfg.load(lastSession)
23
- except ECFGParse:
24
- # TODO: Make the dialog show the exception
25
- confParseFail = True
26
- win.settings = cfg.defaultSettings()
27
- except EIO:
28
- win.settings = cfg.defaultSettings()
29
-
30
- proc getProjectTab(): int =
31
- for i in 0..high(win.tabs):
32
- if win.tabs[i].filename.endswith(NimrodProjectExt): return i
33
-
34
- proc saveTab(tabNr: int, startpath: string) =
35
- if tabNr < 0: return
36
- if win.Tabs[tabNr].saved: return
37
- var path = ""
38
- if win.Tabs[tabNr].filename == "":
39
- path = ChooseFileToSave(win.w, startpath)
40
- # dialogs.nim STOCK_OPEN instead of STOCK_SAVE
41
- else:
42
- path = win.Tabs[tabNr].filename
43
-
44
- if path != "":
45
- var buffer = PTextBuffer(win.Tabs[tabNr].buffer)
46
- # Get the text from the TextView
47
- var startIter: TTextIter
48
- buffer.getStartIter(addr(startIter))
49
-
50
- var endIter: TTextIter
51
- buffer.getEndIter(addr(endIter))
52
-
53
- var text = buffer.getText(addr(startIter), addr(endIter), False)
54
- # Save it to a file
55
- var f: TFile
56
- if open(f, path, fmWrite):
57
- f.write(text)
58
- f.close()
59
-
60
- win.tempStuff.lastSaveDir = splitFile(path).dir
61
-
62
- # Change the tab name and .Tabs.filename etc.
63
- win.Tabs[tabNr].filename = path
64
- win.Tabs[tabNr].saved = True
65
- var name = extractFilename(path)
66
-
67
- var cTab = win.Tabs[tabNr]
68
- cTab.label.setText(name)
69
- else:
70
- error(win.w, "Unable to write to file")
71
-
72
- proc saveAllTabs() =
73
- for i in 0..high(win.tabs):
74
- saveTab(i, os.splitFile(win.tabs[i].filename).dir)
75
-
76
- # GTK Events
77
- # -- w(PWindow)
78
- proc destroy(widget: PWidget, data: pgpointer) {.cdecl.} =
79
- # gather some settings
80
- win.settings.VPanedPos = PPaned(win.sourceViewTabs.getParent()).getPosition()
81
- win.settings.winWidth = win.w.allocation.width
82
- win.settings.winHeight = win.w.allocation.height
83
-
84
- # save the settings
85
- win.save()
86
- # then quit
87
- main_quit()
88
-
89
- proc delete_event(widget: PWidget, event: PEvent, user_data: pgpointer): bool =
90
- var quit = True
91
- for i in low(win.Tabs)..len(win.Tabs)-1:
92
- if not win.Tabs[i].saved:
93
- var askSave = dialogNewWithButtons("", win.w, 0,
94
- STOCK_SAVE, RESPONSE_ACCEPT, STOCK_CANCEL,
95
- RESPONSE_CANCEL,
96
- "Close without saving", RESPONSE_REJECT, nil)
97
- askSave.setTransientFor(win.w)
98
- # TODO: Make this dialog look better
99
- var label = labelNew(win.Tabs[i].filename &
100
- " is unsaved, would you like to save it ?")
101
- PBox(askSave.vbox).pack_start(label, False, False, 0)
102
- label.show()
103
-
104
- var resp = askSave.run()
105
- gtk2.destroy(PWidget(askSave))
106
- case resp
107
- of RESPONSE_ACCEPT:
108
- saveTab(i, os.splitFile(win.tabs[i].filename).dir)
109
- quit = True
110
- of RESPONSE_CANCEL:
111
- quit = False
112
- break
113
- of RESPONSE_REJECT:
114
- quit = True
115
- else:
116
- quit = False
117
- break
118
-
119
- # If False is returned the window will close
120
- return not quit
121
-
122
- proc windowState_Changed(widget: PWidget, event: PEventWindowState,
123
- user_data: pgpointer) =
124
- win.settings.winMaximized = (event.newWindowState and
125
- WINDOW_STATE_MAXIMIZED) != 0
126
-
127
- # -- SourceView(PSourceView) & SourceBuffer
128
- proc updateStatusBar(buffer: PTextBuffer){.cdecl.} =
129
- # Incase this event gets fired before
130
- # bottomBar is initialized
131
- if win.bottomBar != nil and not win.tempStuff.stopSBUpdates:
132
- var iter: TTextIter
133
-
134
- win.bottomBar.pop(0)
135
- buffer.getIterAtMark(addr(iter), buffer.getInsert())
136
- var row = getLine(addr(iter)) + 1
137
- var col = getLineOffset(addr(iter))
138
- discard win.bottomBar.push(0, "Line: " & $row & " Column: " & $col)
139
-
140
- proc cursorMoved(buffer: PTextBuffer, location: PTextIter,
141
- mark: PTextMark, user_data: pgpointer){.cdecl.} =
142
- updateStatusBar(buffer)
143
-
144
- proc onCloseTab(btn: PButton, user_data: PWidget) =
145
- if win.sourceViewTabs.getNPages() > 1:
146
- var tab = win.sourceViewTabs.pageNum(user_data)
147
- win.sourceViewTabs.removePage(tab)
148
-
149
- win.Tabs.delete(tab)
150
-
151
- proc onSwitchTab(notebook: PNotebook, page: PNotebookPage, pageNum: guint,
152
- user_data: pgpointer) =
153
- if win.Tabs.len()-1 >= pageNum:
154
- win.w.setTitle("Aporia IDE - " & win.Tabs[pageNum].filename)
155
-
156
- proc createTabLabel(name: string, t_child: PWidget): tuple[box: PWidget,
157
- label: PLabel] =
158
- var box = hboxNew(False, 0)
159
- var label = labelNew(name)
160
- var closebtn = buttonNew()
161
- closeBtn.setLabel(nil)
162
- var iconSize = iconSizeFromName("tabIconSize")
163
- if iconSize == 0:
164
- iconSize = iconSizeRegister("tabIconSize", 10, 10)
165
- var image = imageNewFromStock(STOCK_CLOSE, iconSize)
166
- discard gSignalConnect(closebtn, "clicked", G_Callback(onCloseTab), t_child)
167
- closebtn.setImage(image)
168
- gtk2.setRelief(closebtn, RELIEF_NONE)
169
- box.packStart(label, True, True, 0)
170
- box.packEnd(closebtn, False, False, 0)
171
- box.showAll()
172
- return (box, label)
173
-
174
- proc changed(buffer: PTextBuffer, user_data: pgpointer) =
175
- # Update the 'Line & Column'
176
- #updateStatusBar(buffer)
177
-
178
- # Change the tabs state to 'unsaved'
179
- # and add '*' to the Tab Name
180
- var current = win.SourceViewTabs.getCurrentPage()
181
- var name = ""
182
- if win.Tabs[current].filename == "":
183
- win.Tabs[current].saved = False
184
- name = "Untitled *"
185
- else:
186
- win.Tabs[current].saved = False
187
- name = extractFilename(win.Tabs[current].filename) & " *"
188
-
189
- var cTab = win.Tabs[current]
190
- cTab.label.setText(name)
191
-
192
- # Other(Helper) functions
193
-
194
- proc initSourceView(SourceView: var PWidget, scrollWindow: var PScrolledWindow,
195
- buffer: var PSourceBuffer) =
196
- # This gets called by addTab
197
- # Each tabs creates a new SourceView
198
- # SourceScrolledWindow(ScrolledWindow)
199
- scrollWindow = scrolledWindowNew(nil, nil)
200
- scrollWindow.setPolicy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
201
- scrollWindow.show()
202
-
203
- # SourceView(gtkSourceView)
204
- SourceView = sourceViewNew(buffer)
205
- PSourceView(SourceView).setInsertSpacesInsteadOfTabs(True)
206
- PSourceView(SourceView).setIndentWidth(win.settings.indentWidth)
207
- PSourceView(SourceView).setShowLineNumbers(win.settings.showLineNumbers)
208
- PSourceView(SourceView).setHighlightCurrentLine(
209
- win.settings.highlightCurrentLine)
210
- PSourceView(SourceView).setShowRightMargin(win.settings.rightMargin)
211
- PSourceView(SourceView).setAutoIndent(win.settings.autoIndent)
212
-
213
- var font = font_description_from_string(win.settings.font)
214
- SourceView.modifyFont(font)
215
-
216
- scrollWindow.add(SourceView)
217
- SourceView.show()
218
-
219
- buffer.setHighlightMatchingBrackets(
220
- win.settings.highlightMatchingBrackets)
221
-
222
- # UGLY workaround for yet another compiler bug:
223
- discard gsignalConnect(buffer, "mark-set",
224
- GCallback(aporia.cursorMoved), nil)
225
- discard gsignalConnect(buffer, "changed", GCallback(aporia.changed), nil)
226
-
227
- # -- Set the syntax highlighter scheme
228
- buffer.setScheme(win.scheme)
229
-
230
- proc addTab(name, filename: string) =
231
- ## Adds a tab, if filename is not "" reads the file. And sets
232
- ## the tabs SourceViews text to that files contents.
233
- assert(win.nimLang != nil)
234
- var buffer: PSourceBuffer = sourceBufferNew(win.nimLang)
235
-
236
- if filename != nil and filename != "":
237
- var lang = win.langMan.guessLanguage(filename, nil)
238
- if lang != nil:
239
- buffer.setLanguage(lang)
240
- else:
241
- buffer.setHighlightSyntax(False)
242
-
243
- var nam = name
244
- if nam == "": nam = "Untitled"
245
- if filename == "": nam.add(" *")
246
- elif filename != "" and name == "":
247
- # Disable the undo/redo manager.
248
- buffer.begin_not_undoable_action()
249
-
250
- # Load the file.
251
- var file: string = readFile(filename)
252
- if file != nil:
253
- buffer.set_text(file, len(file))
254
-
255
- # Enable the undo/redo manager.
256
- buffer.end_not_undoable_action()
257
-
258
- # Get the name.ext of the filename, for the tabs title
259
- nam = extractFilename(filename)
260
-
261
- # Init the sourceview
262
- var sourceView: PWidget
263
- var scrollWindow: PScrolledWindow
264
- initSourceView(sourceView, scrollWindow, buffer)
265
-
266
- var (TabLabel, labelText) = createTabLabel(nam, scrollWindow)
267
- # Add a tab
268
- discard win.SourceViewTabs.appendPage(scrollWindow, TabLabel)
269
-
270
- var nTab: Tab
271
- nTab.buffer = buffer
272
- nTab.sourceView = sourceView
273
- nTab.label = labelText
274
- nTab.saved = (filename != "")
275
- nTab.filename = filename
276
- win.Tabs.add(nTab)
277
-
278
- PTextView(SourceView).setBuffer(nTab.buffer)
279
-
280
- # GTK Events Contd.
281
- # -- TopMenu & TopBar
282
-
283
- proc newFile(menuItem: PMenuItem, user_data: pgpointer) =
284
- addTab("", "")
285
- win.sourceViewTabs.setCurrentPage(win.Tabs.len()-1)
286
-
287
- proc openFile(menuItem: PMenuItem, user_data: pgpointer) =
288
- var startpath = ""
289
- var currPage = win.SourceViewTabs.getCurrentPage()
290
- if currPage <% win.tabs.len:
291
- startpath = os.splitFile(win.tabs[currPage].filename).dir
292
-
293
- if startpath.len == 0:
294
- # Use lastSavePath as the startpath
295
- startpath = win.tempStuff.lastSaveDir
296
- if startpath.len == 0:
297
- startpath = os.getHomeDir()
298
-
299
- var files = ChooseFilesToOpen(win.w, startpath)
300
- if files.len() > 0:
301
- for f in items(files):
302
- try:
303
- addTab("", f)
304
- except EIO:
305
- error(win.w, "Unable to read from file")
306
- # Switch to the newly created tab
307
- win.sourceViewTabs.setCurrentPage(win.Tabs.len()-1)
308
-
309
- proc saveFile_Activate(menuItem: PMenuItem, user_data: pgpointer) =
310
- var current = win.SourceViewTabs.getCurrentPage()
311
- saveTab(current, os.splitFile(win.tabs[current].filename).dir)
312
-
313
- proc saveFileAs_Activate(menuItem: PMenuItem, user_data: pgpointer) =
314
- var current = win.SourceViewTabs.getCurrentPage()
315
- var (filename, saved) = (win.Tabs[current].filename, win.Tabs[current].saved)
316
-
317
- win.Tabs[current].saved = False
318
- win.Tabs[current].filename = ""
319
- saveTab(current, os.splitFile(filename).dir)
320
- # If the user cancels the save file dialog. Restore the previous filename
321
- # and saved state
322
- if win.Tabs[current].filename == "":
323
- win.Tabs[current].filename = filename
324
- win.Tabs[current].saved = saved
325
-
326
- proc undo(menuItem: PMenuItem, user_data: pgpointer) =
327
- var current = win.SourceViewTabs.getCurrentPage()
328
- if win.Tabs[current].buffer.canUndo():
329
- win.Tabs[current].buffer.undo()
330
-
331
- proc redo(menuItem: PMenuItem, user_data: pgpointer) =
332
- var current = win.SourceViewTabs.getCurrentPage()
333
- if win.Tabs[current].buffer.canRedo():
334
- win.Tabs[current].buffer.redo()
335
-
336
- proc find_Activate(menuItem: PMenuItem, user_data: pgpointer) =
337
- # Get the selected text, and set the findEntry to it.
338
- var currentTab = win.SourceViewTabs.getCurrentPage()
339
- var insertIter: TTextIter
340
- win.Tabs[currentTab].buffer.getIterAtMark(addr(insertIter),
341
- win.Tabs[currentTab].buffer.getInsert())
342
- var insertOffset = addr(insertIter).getOffset()
343
-
344
- var selectIter: TTextIter
345
- win.Tabs[currentTab].buffer.getIterAtMark(addr(selectIter),
346
- win.Tabs[currentTab].buffer.getSelectionBound())
347
- var selectOffset = addr(selectIter).getOffset()
348
-
349
- if insertOffset != selectOffset:
350
- var text = win.Tabs[currentTab].buffer.getText(addr(insertIter),
351
- addr(selectIter), false)
352
- win.findEntry.setText(text)
353
-
354
- win.findBar.show()
355
- win.findEntry.grabFocus()
356
- win.replaceEntry.hide()
357
- win.replaceLabel.hide()
358
- win.replaceBtn.hide()
359
- win.replaceAllBtn.hide()
360
-
361
- proc replace_Activate(menuitem: PMenuItem, user_data: pgpointer) =
362
- win.findBar.show()
363
- win.findEntry.grabFocus()
364
- win.replaceEntry.show()
365
- win.replaceLabel.show()
366
- win.replaceBtn.show()
367
- win.replaceAllBtn.show()
368
-
369
- proc settings_Activate(menuitem: PMenuItem, user_data: pgpointer) =
370
- settings.showSettings(win)
371
-
372
- proc viewBottomPanel_Toggled(menuitem: PCheckMenuItem, user_data: pgpointer) =
373
- win.settings.bottomPanelVisible = menuitem.itemGetActive()
374
- if win.settings.bottomPanelVisible:
375
- win.bottomPanelTabs.show()
376
- else:
377
- win.bottomPanelTabs.hide()
378
-
379
- var
380
- pegLineError = peg"{[^(]*} '(' {\d+} ', ' \d+ ') Error:' \s* {.*}"
381
- pegLineWarning = peg"{[^(]*} '(' {\d+} ', ' \d+ ') ' ('Warning:'/'Hint:') \s* {.*}"
382
- pegOtherError = peg"'Error:' \s* {.*}"
383
- pegSuccess = peg"'Hint: operation successful'.*"
384
-
385
- proc addText(textView: PTextView, text: string, colorTag: PTextTag = nil) =
386
- if text != nil:
387
- var iter: TTextIter
388
- textView.getBuffer().getEndIter(addr(iter))
389
-
390
- if colorTag == nil:
391
- textView.getBuffer().insert(addr(iter), text, len(text))
392
- else:
393
- textView.getBuffer().insertWithTags(addr(iter), text, len(text), colorTag,
394
- nil)
395
-
396
- proc createColor(textView: PTextView, name, color: string): PTextTag =
397
- var tagTable = textView.getBuffer().getTagTable()
398
- result = tagTable.tableLookup(name)
399
- if result == nil:
400
- result = textView.getBuffer().createTag(name, "foreground", color, nil)
401
-
402
- when not defined(os.findExe):
403
- proc findExe(exe: string): string =
404
- ## returns "" if the exe cannot be found
405
- result = addFileExt(exe, os.exeExt)
406
- if ExistsFile(result): return
407
- var path = os.getEnv("PATH")
408
- for candidate in split(path, pathSep):
409
- var x = candidate / result
410
- if ExistsFile(x): return x
411
- result = ""
412
-
413
- proc GetCmd(cmd, filename: string): string =
414
- var f = quoteIfContainsWhite(filename)
415
- if cmd =~ peg"\s* '$' y'findExe' '(' {[^)]+} ')' {.*}":
416
- var exe = quoteIfContainsWhite(findExe(matches[0]))
417
- if exe.len == 0: exe = matches[0]
418
- result = exe & " " & matches[1] % f
419
- else:
420
- result = cmd % f
421
-
422
- proc showBottomPanel() =
423
- if not win.settings.bottomPanelVisible:
424
- win.bottomPanelTabs.show()
425
- win.settings.bottomPanelVisible = true
426
- PCheckMenuItem(win.viewBottomPanelMenuItem).itemSetActive(true)
427
- # Scroll to the end of the TextView
428
- # This is stupid, it works sometimes... it's random
429
- var endIter: TTextIter
430
- win.outputTextView.getBuffer().getEndIter(addr(endIter))
431
- discard win.outputTextView.scrollToIter(
432
- addr(endIter), 0.25, False, 0.0, 0.0)
433
-
434
- proc compileRun(currentTab: int, shouldRun: bool) =
435
- if win.Tabs[currentTab].filename.len == 0: return
436
- # Clear the outputTextView
437
- win.outputTextView.getBuffer().setText("", 0)
438
-
439
- var outp = osProc.execProcess(GetCmd(win.settings.nimrodCmd,
440
- win.Tabs[currentTab].filename))
441
- # Colors
442
- var normalTag = createColor(win.outputTextView, "normalTag", "#3d3d3d")
443
- var errorTag = createColor(win.outputTextView, "errorTag", "red")
444
- var warningTag = createColor(win.outputTextView, "warningTag", "darkorange")
445
- var successTag = createColor(win.outputTextView, "successTag", "darkgreen")
446
- for x in outp.splitLines():
447
- if x =~ pegLineError / pegOtherError:
448
- win.outputTextView.addText("\n" & x, errorTag)
449
- elif x=~ pegSuccess:
450
- win.outputTextView.addText("\n" & x, successTag)
451
-
452
- # Launch the process
453
- if shouldRun:
454
- var filename = changeFileExt(win.Tabs[currentTab].filename, os.ExeExt)
455
- var output = "\n" & osProc.execProcess(filename)
456
- win.outputTextView.addText(output)
457
- elif x =~ pegLineWarning:
458
- win.outputTextView.addText("\n" & x, warningTag)
459
- else:
460
- win.outputTextView.addText("\n" & x, normalTag)
461
- showBottomPanel()
462
-
463
- proc CompileCurrent_Activate(menuitem: PMenuItem, user_data: pgpointer) =
464
- saveFile_Activate(nil, nil)
465
- compileRun(win.SourceViewTabs.getCurrentPage(), false)
466
-
467
- proc CompileRunCurrent_Activate(menuitem: PMenuItem, user_data: pgpointer) =
468
- saveFile_Activate(nil, nil)
469
- compileRun(win.SourceViewTabs.getCurrentPage(), true)
470
-
471
- proc CompileProject_Activate(menuitem: PMenuItem, user_data: pgpointer) =
472
- saveAllTabs()
473
- compileRun(getProjectTab(), false)
474
-
475
- proc CompileRunProject_Activate(menuitem: PMenuItem, user_data: pgpointer) =
476
- saveAllTabs()
477
- compileRun(getProjectTab(), true)
478
-
479
- proc RunCustomCommand(cmd: string) =
480
- saveFile_Activate(nil, nil)
481
- var currentTab = win.SourceViewTabs.getCurrentPage()
482
- if win.Tabs[currentTab].filename.len == 0 or cmd.len == 0: return
483
- # Clear the outputTextView
484
- win.outputTextView.getBuffer().setText("", 0)
485
- var outp = osProc.execProcess(GetCmd(cmd, win.Tabs[currentTab].filename))
486
- var normalTag = createColor(win.outputTextView, "normalTag", "#3d3d3d")
487
- for x in outp.splitLines():
488
- win.outputTextView.addText("\n" & x, normalTag)
489
- showBottomPanel()
490
-
491
- proc RunCustomCommand1(menuitem: PMenuItem, user_data: pgpointer) =
492
- RunCustomCommand(win.settings.customCmd1)
493
-
494
- proc RunCustomCommand2(menuitem: PMenuItem, user_data: pgpointer) =
495
- RunCustomCommand(win.settings.customCmd2)
496
-
497
- proc RunCustomCommand3(menuitem: PMenuItem, user_data: pgpointer) =
498
- RunCustomCommand(win.settings.customCmd3)
499
-
500
- # -- FindBar
501
-
502
- proc nextBtn_Clicked(button: PButton, user_data: pgpointer) = findText(True)
503
- proc prevBtn_Clicked(button: PButton, user_data: pgpointer) = findText(False)
504
-
505
- proc replaceBtn_Clicked(button: PButton, user_data: pgpointer) =
506
- var currentTab = win.SourceViewTabs.getCurrentPage()
507
- var start, theEnd: TTextIter
508
- if not win.Tabs[currentTab].buffer.getSelectionBounds(
509
- addr(start), addr(theEnd)):
510
- # If no text is selected, try finding a match.
511
- findText(True)
512
- if not win.Tabs[currentTab].buffer.getSelectionBounds(
513
- addr(start), addr(theEnd)):
514
- # No match
515
- return
516
-
517
- # Remove the text
518
- win.Tabs[currentTab].buffer.delete(addr(start), addr(theEnd))
519
- # Insert the replacement
520
- var text = getText(win.replaceEntry)
521
- win.Tabs[currentTab].buffer.insert(addr(start), text, len(text))
522
-
523
- proc replaceAllBtn_Clicked(button: PButton, user_data: pgpointer) =
524
- var find = getText(win.findEntry)
525
- var replace = getText(win.replaceEntry)
526
- discard replaceAll(find, replace)
527
-
528
- proc closeBtn_Clicked(button: PButton, user_data: pgpointer) =
529
- win.findBar.hide()
530
-
531
- proc caseSens_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) =
532
- win.settings.search = "casesens"
533
- proc caseInSens_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) =
534
- win.settings.search = "caseinsens"
535
- proc style_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) =
536
- win.settings.search = "style"
537
- proc regex_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) =
538
- win.settings.search = "regex"
539
- proc peg_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) =
540
- win.settings.search = "peg"
541
-
542
- proc extraBtn_Clicked(button: PButton, user_data: pgpointer) =
543
- var extraMenu = menuNew()
544
- var group: PGSList
545
-
546
- var caseSensMenuItem = radio_menu_item_new(group, "Case sensitive")
547
- extraMenu.append(caseSensMenuItem)
548
- discard signal_connect(caseSensMenuItem, "toggled",
549
- SIGNAL_FUNC(caseSens_Changed), nil)
550
- caseSensMenuItem.show()
551
- group = caseSensMenuItem.ItemGetGroup()
552
-
553
- var caseInSensMenuItem = radio_menu_item_new(group, "Case insensitive")
554
- extraMenu.append(caseInSensMenuItem)
555
- discard signal_connect(caseInSensMenuItem, "toggled",
556
- SIGNAL_FUNC(caseInSens_Changed), nil)
557
- caseInSensMenuItem.show()
558
- group = caseInSensMenuItem.ItemGetGroup()
559
-
560
- var styleMenuItem = radio_menu_item_new(group, "Style insensitive")
561
- extraMenu.append(styleMenuItem)
562
- discard signal_connect(styleMenuItem, "toggled",
563
- SIGNAL_FUNC(style_Changed), nil)
564
- styleMenuItem.show()
565
- group = styleMenuItem.ItemGetGroup()
566
-
567
- var regexMenuItem = radio_menu_item_new(group, "Regex")
568
- extraMenu.append(regexMenuItem)
569
- discard signal_connect(regexMenuItem, "toggled",
570
- SIGNAL_FUNC(regex_Changed), nil)
571
- regexMenuItem.show()
572
- group = regexMenuItem.ItemGetGroup()
573
-
574
- var pegMenuItem = radio_menu_item_new(group, "Pegs")
575
- extraMenu.append(pegMenuItem)
576
- discard signal_connect(pegMenuItem, "toggled",
577
- SIGNAL_FUNC(peg_Changed), nil)
578
- pegMenuItem.show()
579
-
580
- # Make the correct radio button active
581
- case win.settings.search
582
- of "casesens":
583
- PCheckMenuItem(caseSensMenuItem).ItemSetActive(True)
584
- of "caseinsens":
585
- PCheckMenuItem(caseInSensMenuItem).ItemSetActive(True)
586
- of "style":
587
- PCheckMenuItem(styleMenuItem).ItemSetActive(True)
588
- of "regex":
589
- PCheckMenuItem(regexMenuItem).ItemSetActive(True)
590
- of "peg":
591
- PCheckMenuItem(pegMenuItem).ItemSetActive(True)
592
-
593
- extraMenu.popup(nil, nil, nil, nil, 0, get_current_event_time())
594
-
595
- # GUI Initialization
596
-
597
- proc createAccelMenuItem(toolsMenu: PMenu, accGroup: PAccelGroup,
598
- label: string, acc: gint,
599
- action: proc (i: PMenuItem, p: pgpointer)) =
600
- var result = menu_item_new(label)
601
- result.addAccelerator("activate", accGroup, acc, 0, ACCEL_VISIBLE)
602
- ToolsMenu.append(result)
603
- show(result)
604
- discard signal_connect(result, "activate", SIGNAL_FUNC(action), nil)
605
-
606
- proc createSeparator(menu: PMenu) =
607
- var sep = separator_menu_item_new()
608
- menu.append(sep)
609
- sep.show()
610
-
611
- proc initTopMenu(MainBox: PBox) =
612
- # Create a accelerator group, used for shortcuts
613
- # like CTRL + S in SaveMenuItem
614
- var accGroup = accel_group_new()
615
- add_accel_group(win.w, accGroup)
616
-
617
- # TopMenu(MenuBar)
618
- var TopMenu = menuBarNew()
619
-
620
- # FileMenu
621
- var FileMenu = menuNew()
622
-
623
- var NewMenuItem = menu_item_new("New") # New
624
- FileMenu.append(NewMenuItem)
625
- show(NewMenuItem)
626
- discard signal_connect(NewMenuItem, "activate",
627
- SIGNAL_FUNC(newFile), nil)
628
-
629
- createSeparator(FileMenu)
630
-
631
- var OpenMenuItem = menu_item_new("Open...") # Open...
632
- # CTRL + O
633
- OpenMenuItem.add_accelerator("activate", accGroup,
634
- KEY_o, CONTROL_MASK, ACCEL_VISIBLE)
635
- FileMenu.append(OpenMenuItem)
636
- show(OpenMenuItem)
637
- discard signal_connect(OpenMenuItem, "activate",
638
- SIGNAL_FUNC(aporia.openFile), nil)
639
-
640
- var SaveMenuItem = menu_item_new("Save") # Save
641
- # CTRL + S
642
- SaveMenuItem.add_accelerator("activate", accGroup,
643
- KEY_s, CONTROL_MASK, ACCEL_VISIBLE)
644
- FileMenu.append(SaveMenuItem)
645
- show(SaveMenuItem)
646
- discard signal_connect(SaveMenuItem, "activate",
647
- SIGNAL_FUNC(saveFile_activate), nil)
648
-
649
- var SaveAsMenuItem = menu_item_new("Save As...") # Save as...
650
-
651
- SaveAsMenuItem.add_accelerator("activate", accGroup,
652
- KEY_s, CONTROL_MASK or gdk2.SHIFT_MASK, ACCEL_VISIBLE)
653
- FileMenu.append(SaveAsMenuItem)
654
- show(SaveAsMenuItem)
655
- discard signal_connect(SaveAsMenuItem, "activate",
656
- SIGNAL_FUNC(saveFileAs_Activate), nil)
657
-
658
- var FileMenuItem = menuItemNewWithMnemonic("_File")
659
-
660
- FileMenuItem.setSubMenu(FileMenu)
661
- FileMenuItem.show()
662
- TopMenu.append(FileMenuItem)
663
-
664
- # Edit menu
665
- var EditMenu = menuNew()
666
-
667
- var UndoMenuItem = menu_item_new("Undo") # Undo
668
- EditMenu.append(UndoMenuItem)
669
- show(UndoMenuItem)
670
- discard signal_connect(UndoMenuItem, "activate",
671
- SIGNAL_FUNC(aporia.undo), nil)
672
-
673
- var RedoMenuItem = menu_item_new("Redo") # Undo
674
- EditMenu.append(RedoMenuItem)
675
- show(RedoMenuItem)
676
- discard signal_connect(RedoMenuItem, "activate",
677
- SIGNAL_FUNC(aporia.redo), nil)
678
-
679
- createSeparator(EditMenu)
680
-
681
- var FindMenuItem = menu_item_new("Find") # Find
682
- FindMenuItem.add_accelerator("activate", accGroup,
683
- KEY_f, CONTROL_MASK, ACCEL_VISIBLE)
684
- EditMenu.append(FindMenuItem)
685
- show(FindMenuItem)
686
- discard signal_connect(FindMenuItem, "activate",
687
- SIGNAL_FUNC(aporia.find_Activate), nil)
688
-
689
- var ReplaceMenuItem = menu_item_new("Replace") # Replace
690
- ReplaceMenuItem.add_accelerator("activate", accGroup,
691
- KEY_h, CONTROL_MASK, ACCEL_VISIBLE)
692
- EditMenu.append(ReplaceMenuItem)
693
- show(ReplaceMenuItem)
694
- discard signal_connect(ReplaceMenuItem, "activate",
695
- SIGNAL_FUNC(aporia.replace_Activate), nil)
696
-
697
- createSeparator(EditMenu)
698
-
699
- var SettingsMenuItem = menu_item_new("Settings...") # Settings
700
- EditMenu.append(SettingsMenuItem)
701
- show(SettingsMenuItem)
702
- discard signal_connect(SettingsMenuItem, "activate",
703
- SIGNAL_FUNC(aporia.Settings_Activate), nil)
704
-
705
- var EditMenuItem = menuItemNewWithMnemonic("_Edit")
706
-
707
- EditMenuItem.setSubMenu(EditMenu)
708
- EditMenuItem.show()
709
- TopMenu.append(EditMenuItem)
710
-
711
- # View menu
712
- var ViewMenu = menuNew()
713
-
714
- win.viewBottomPanelMenuItem = check_menu_item_new("Bottom Panel")
715
- PCheckMenuItem(win.viewBottomPanelMenuItem).itemSetActive(
716
- win.settings.bottomPanelVisible)
717
- win.viewBottomPanelMenuItem.add_accelerator("activate", accGroup,
718
- KEY_f9, CONTROL_MASK, ACCEL_VISIBLE)
719
- ViewMenu.append(win.viewBottomPanelMenuItem)
720
- show(win.viewBottomPanelMenuItem)
721
- discard signal_connect(win.viewBottomPanelMenuItem, "toggled",
722
- SIGNAL_FUNC(aporia.viewBottomPanel_Toggled), nil)
723
-
724
- var ViewMenuItem = menuItemNewWithMnemonic("_View")
725
-
726
- ViewMenuItem.setSubMenu(ViewMenu)
727
- ViewMenuItem.show()
728
- TopMenu.append(ViewMenuItem)
729
-
730
-
731
- # Tools menu
732
- var ToolsMenu = menuNew()
733
-
734
- createAccelMenuItem(ToolsMenu, accGroup, "Compile current file",
735
- KEY_F4, aporia.CompileCurrent_Activate)
736
- createAccelMenuItem(ToolsMenu, accGroup, "Compile & run current file",
737
- KEY_F5, aporia.CompileRunCurrent_Activate)
738
- createSeparator(ToolsMenu)
739
- createAccelMenuItem(ToolsMenu, accGroup, "Compile project",
740
- KEY_F8, aporia.CompileProject_Activate)
741
- createAccelMenuItem(ToolsMenu, accGroup, "Compile & run project",
742
- KEY_F9, aporia.CompileRunProject_Activate)
743
- createSeparator(ToolsMenu)
744
- createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 1",
745
- KEY_F1, aporia.RunCustomCommand1)
746
- createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 2",
747
- KEY_F2, aporia.RunCustomCommand2)
748
- createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 3",
749
- KEY_F3, aporia.RunCustomCommand3)
750
-
751
- var ToolsMenuItem = menuItemNewWithMnemonic("_Tools")
752
-
753
- ToolsMenuItem.setSubMenu(ToolsMenu)
754
- ToolsMenuItem.show()
755
- TopMenu.append(ToolsMenuItem)
756
-
757
- # Help menu
758
- MainBox.packStart(TopMenu, False, False, 0)
759
- TopMenu.show()
760
-
761
- proc initToolBar(MainBox: PBox) =
762
- # TopBar(ToolBar)
763
- var TopBar = toolbarNew()
764
- TopBar.setStyle(TOOLBAR_ICONS)
765
-
766
- var NewFileItem = TopBar.insertStock(STOCK_NEW, "New File",
767
- "New File", SIGNAL_FUNC(aporia.newFile), nil, 0)
768
- TopBar.appendSpace()
769
- var OpenItem = TopBar.insertStock(STOCK_OPEN, "Open",
770
- "Open", SIGNAL_FUNC(aporia.openFile), nil, -1)
771
- var SaveItem = TopBar.insertStock(STOCK_SAVE, "Save",
772
- "Save", SIGNAL_FUNC(saveFile_Activate), nil, -1)
773
- TopBar.appendSpace()
774
- var UndoItem = TopBar.insertStock(STOCK_UNDO, "Undo",
775
- "Undo", SIGNAL_FUNC(aporia.undo), nil, -1)
776
- var RedoItem = TopBar.insertStock(STOCK_REDO, "Redo",
777
- "Redo", SIGNAL_FUNC(aporia.redo), nil, -1)
778
-
779
- MainBox.packStart(TopBar, False, False, 0)
780
- TopBar.show()
781
-
782
- proc initSourceViewTabs() =
783
- win.SourceViewTabs = notebookNew()
784
- #win.sourceViewTabs.dragDestSet(DEST_DEFAULT_DROP, nil, 0, ACTION_MOVE)
785
- discard win.SourceViewTabs.signalConnect(
786
- "switch-page", SIGNAL_FUNC(onSwitchTab), nil)
787
- #discard win.SourceViewTabs.signalConnect(
788
- # "drag-drop", SIGNAL_FUNC(svTabs_DragDrop), nil)
789
- #discard win.SourceViewTabs.signalConnect(
790
- # "drag-data-received", SIGNAL_FUNC(svTabs_DragDataRecv), nil)
791
- #discard win.SourceViewTabs.signalConnect(
792
- # "drag-motion", SIGNAL_FUNC(svTabs_DragMotion), nil)
793
- win.SourceViewTabs.set_scrollable(True)
794
-
795
- win.SourceViewTabs.show()
796
- if lastSession.len != 0:
797
- for i in 0 .. len(lastSession)-1:
798
- var splitUp = lastSession[i].split('|')
799
- var (filename, offset) = (splitUp[0], splitUp[1])
800
- addTab("", filename)
801
-
802
- var iter: TTextIter
803
- win.Tabs[i].buffer.getIterAtOffset(addr(iter), offset.parseInt())
804
- win.Tabs[i].buffer.moveMarkByName("insert", addr(iter))
805
- win.Tabs[i].buffer.moveMarkByName("selection_bound", addr(iter))
806
-
807
- # TODO: Fix this..... :(
808
- discard PTextView(win.Tabs[i].sourceView).
809
- scrollToIter(addr(iter), 0.25, true, 0.0, 0.0)
810
- else:
811
- addTab("", "")
812
-
813
- # This doesn't work :\
814
- win.Tabs[0].sourceView.grabFocus()
815
-
816
-
817
- proc initBottomTabs() =
818
- win.bottomPanelTabs = notebookNew()
819
- if win.settings.bottomPanelVisible:
820
- win.bottomPanelTabs.show()
821
-
822
- # output tab
823
- var tabLabel = labelNew("Output")
824
- var outputTab = vboxNew(False, 0)
825
- discard win.bottomPanelTabs.appendPage(outputTab, tabLabel)
826
- # Compiler tabs, gtktextview
827
- var outputScrolledWindow = scrolledwindowNew(nil, nil)
828
- outputScrolledWindow.setPolicy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
829
- outputTab.packStart(outputScrolledWindow, true, true, 0)
830
- outputScrolledWindow.show()
831
-
832
- win.outputTextView = textviewNew()
833
- outputScrolledWindow.add(win.outputTextView)
834
- win.outputTextView.show()
835
-
836
- outputTab.show()
837
-
838
- proc initTAndBP(MainBox: PBox) =
839
- # This init's the HPaned, which splits the sourceViewTabs
840
- # and the BottomPanelTabs
841
- initSourceViewTabs()
842
- initBottomTabs()
843
-
844
- var TAndBPVPaned = vpanedNew()
845
- tandbpVPaned.pack1(win.sourceViewTabs, resize=True, shrink=False)
846
- tandbpVPaned.pack2(win.bottomPanelTabs, resize=False, shrink=False)
847
- MainBox.packStart(TAndBPVPaned, True, True, 0)
848
- tandbpVPaned.setPosition(win.settings.VPanedPos)
849
- TAndBPVPaned.show()
850
-
851
- proc initFindBar(MainBox: PBox) =
852
- # Create a fixed container
853
- win.findBar = HBoxNew(False, 0)
854
- win.findBar.setSpacing(4)
855
-
856
- # Add a Label 'Find'
857
- var findLabel = labelNew("Find:")
858
- win.findBar.packStart(findLabel, False, False, 0)
859
- findLabel.show()
860
-
861
- # Add a (find) text entry
862
- win.findEntry = entryNew()
863
- win.findBar.packStart(win.findEntry, False, False, 0)
864
- discard win.findEntry.signalConnect("activate", SIGNAL_FUNC(
865
- aporia.nextBtn_Clicked), nil)
866
- win.findEntry.show()
867
- var rq: TRequisition
868
- win.findEntry.sizeRequest(addr(rq))
869
-
870
- # Make the (find) text entry longer
871
- win.findEntry.set_size_request(190, rq.height)
872
-
873
- # Add a Label 'Replace'
874
- # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown
875
- win.replaceLabel = labelNew("Replace:")
876
- win.findBar.packStart(win.replaceLabel, False, False, 0)
877
- #replaceLabel.show()
878
-
879
- # Add a (replace) text entry
880
- # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown
881
- win.replaceEntry = entryNew()
882
- win.findBar.packStart(win.replaceEntry, False, False, 0)
883
- #win.replaceEntry.show()
884
- var rq1: TRequisition
885
- win.replaceEntry.sizeRequest(addr(rq1))
886
-
887
- # Make the (replace) text entry longer
888
- win.replaceEntry.set_size_request(100, rq1.height)
889
-
890
- # Find next button
891
- var nextBtn = buttonNew("Next")
892
- win.findBar.packStart(nextBtn, false, false, 0)
893
- discard nextBtn.signalConnect("clicked",
894
- SIGNAL_FUNC(aporia.nextBtn_Clicked), nil)
895
- nextBtn.show()
896
- var nxtBtnRq: TRequisition
897
- nextBtn.sizeRequest(addr(nxtBtnRq))
898
-
899
- # Find previous button
900
- var prevBtn = buttonNew("Previous")
901
- win.findBar.packStart(prevBtn, false, false, 0)
902
- discard prevBtn.signalConnect("clicked",
903
- SIGNAL_FUNC(aporia.prevBtn_Clicked), nil)
904
- prevBtn.show()
905
-
906
- # Replace button
907
- # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown
908
- win.replaceBtn = buttonNew("Replace")
909
- win.findBar.packStart(win.replaceBtn, false, false, 0)
910
- discard win.replaceBtn.signalConnect("clicked",
911
- SIGNAL_FUNC(aporia.replaceBtn_Clicked), nil)
912
- #replaceBtn.show()
913
-
914
- # Replace all button
915
- # - this Is only shown, when the 'Search & Replace'(CTRL + H) is shown
916
- win.replaceAllBtn = buttonNew("Replace All")
917
- win.findBar.packStart(win.replaceAllBtn, false, false, 0)
918
- discard win.replaceAllBtn.signalConnect("clicked",
919
- SIGNAL_FUNC(aporia.replaceAllBtn_Clicked), nil)
920
- #replaceAllBtn.show()
921
-
922
- # Right side ...
923
-
924
- # Close button - With a close stock image
925
- var closeBtn = buttonNew()
926
- var closeImage = imageNewFromStock(STOCK_CLOSE, ICON_SIZE_SMALL_TOOLBAR)
927
- var closeBox = hboxNew(False, 0)
928
- closeBtn.add(closeBox)
929
- closeBox.show()
930
- closeBox.add(closeImage)
931
- closeImage.show()
932
- discard closeBtn.signalConnect("clicked",
933
- SIGNAL_FUNC(aporia.closeBtn_Clicked), nil)
934
- win.findBar.packEnd(closeBtn, False, False, 2)
935
- closeBtn.show()
936
-
937
- # Extra button - When clicked shows a menu with options like 'Use regex'
938
- var extraBtn = buttonNew()
939
- var extraImage = imageNewFromStock(STOCK_PROPERTIES, ICON_SIZE_SMALL_TOOLBAR)
940
-
941
- var extraBox = hboxNew(False, 0)
942
- extraBtn.add(extraBox)
943
- extraBox.show()
944
- extraBox.add(extraImage)
945
- extraImage.show()
946
- discard extraBtn.signalConnect("clicked",
947
- SIGNAL_FUNC(aporia.extraBtn_Clicked), nil)
948
- win.findBar.packEnd(extraBtn, False, False, 0)
949
- extraBtn.show()
950
-
951
- MainBox.packStart(win.findBar, False, False, 0)
952
- win.findBar.show()
953
-
954
- proc initStatusBar(MainBox: PBox) =
955
- win.bottomBar = statusbarNew()
956
- MainBox.packStart(win.bottomBar, False, False, 0)
957
- win.bottomBar.show()
958
-
959
- discard win.bottomBar.push(0, "Line: 0 Column: 0")
960
-
961
- proc initControls() =
962
- # Load up the language style
963
- win.langMan = languageManagerGetDefault()
964
- var langpaths: array[0..1, cstring] =
965
- [cstring(os.getApplicationDir() / langSpecs), nil]
966
- win.langMan.setSearchPath(addr(langpaths))
967
- var nimLang = win.langMan.getLanguage("nimrod")
968
- win.nimLang = nimLang
969
-
970
- # Load the scheme
971
- var schemeMan = schemeManagerGetDefault()
972
- var schemepaths: array[0..1, cstring] =
973
- [cstring(os.getApplicationDir() / styles), nil]
974
- schemeMan.setSearchPath(addr(schemepaths))
975
- win.scheme = schemeMan.getScheme(win.settings.colorSchemeID)
976
-
977
- # Window
978
- win.w = windowNew(gtk2.WINDOW_TOPLEVEL)
979
- win.w.setDefaultSize(win.settings.winWidth, win.settings.winHeight)
980
- win.w.setTitle("Aporia IDE")
981
- if win.settings.winMaximized: win.w.maximize()
982
-
983
- win.w.show() # The window has to be shown before
984
- # setting the position of the VPaned so that
985
- # it gets set correctly, when the window is maximized.
986
-
987
- discard win.w.signalConnect("destroy", SIGNAL_FUNC(aporia.destroy), nil)
988
- discard win.w.signalConnect("delete_event",
989
- SIGNAL_FUNC(aporia.delete_event), nil)
990
- discard win.w.signalConnect("window-state-event",
991
- SIGNAL_FUNC(aporia.windowState_Changed), nil)
992
-
993
- # MainBox (vbox)
994
- var MainBox = vboxNew(False, 0)
995
- win.w.add(MainBox)
996
-
997
- initTopMenu(MainBox)
998
- initToolBar(MainBox)
999
- initTAndBP(MainBox)
1000
- initFindBar(MainBox)
1001
- initStatusBar(MainBox)
1002
-
1003
- MainBox.show()
1004
- if confParseFail:
1005
- dialogs.warning(win.w, "Error parsing config file, using default settings.")
1006
-
1007
- nimrod_init()
1008
- initControls()
1009
- main()
1010
-