fluentd-ui 0.3.12 → 0.3.13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +4 -0
  3. data/Gemfile.lock +1 -1
  4. data/app/assets/javascripts/application.js +2 -0
  5. data/app/assets/javascripts/codemirror.js +29 -0
  6. data/app/assets/javascripts/codemirror_fluentd.js +59 -0
  7. data/app/assets/stylesheets/application.css +6 -0
  8. data/app/views/fluentd/settings/edit.html.haml +1 -1
  9. data/app/views/shared/vue/_setting.html.erb +1 -1
  10. data/bower.json +2 -1
  11. data/lib/fluentd-ui/version.rb +1 -1
  12. data/spec/features/source_and_output_spec.rb +16 -6
  13. data/vendor/assets/javascripts/bower/codemirror/.bower.json +29 -0
  14. data/vendor/assets/javascripts/bower/codemirror/AUTHORS +423 -0
  15. data/vendor/assets/javascripts/bower/codemirror/CONTRIBUTING.md +76 -0
  16. data/vendor/assets/javascripts/bower/codemirror/LICENSE +19 -0
  17. data/vendor/assets/javascripts/bower/codemirror/README.md +11 -0
  18. data/vendor/assets/javascripts/bower/codemirror/addon/comment/comment.js +183 -0
  19. data/vendor/assets/javascripts/bower/codemirror/addon/comment/continuecomment.js +85 -0
  20. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.css +32 -0
  21. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.js +155 -0
  22. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.css +6 -0
  23. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.js +41 -0
  24. data/vendor/assets/javascripts/bower/codemirror/addon/display/panel.js +94 -0
  25. data/vendor/assets/javascripts/bower/codemirror/addon/display/placeholder.js +58 -0
  26. data/vendor/assets/javascripts/bower/codemirror/addon/display/rulers.js +64 -0
  27. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closebrackets.js +159 -0
  28. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closetag.js +159 -0
  29. data/vendor/assets/javascripts/bower/codemirror/addon/edit/continuelist.js +51 -0
  30. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchbrackets.js +120 -0
  31. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchtags.js +66 -0
  32. data/vendor/assets/javascripts/bower/codemirror/addon/edit/trailingspace.js +27 -0
  33. data/vendor/assets/javascripts/bower/codemirror/addon/fold/brace-fold.js +105 -0
  34. data/vendor/assets/javascripts/bower/codemirror/addon/fold/comment-fold.js +57 -0
  35. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldcode.js +145 -0
  36. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.css +20 -0
  37. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.js +134 -0
  38. data/vendor/assets/javascripts/bower/codemirror/addon/fold/indent-fold.js +44 -0
  39. data/vendor/assets/javascripts/bower/codemirror/addon/fold/markdown-fold.js +49 -0
  40. data/vendor/assets/javascripts/bower/codemirror/addon/fold/xml-fold.js +182 -0
  41. data/vendor/assets/javascripts/bower/codemirror/addon/hint/anyword-hint.js +41 -0
  42. data/vendor/assets/javascripts/bower/codemirror/addon/hint/css-hint.js +56 -0
  43. data/vendor/assets/javascripts/bower/codemirror/addon/hint/html-hint.js +348 -0
  44. data/vendor/assets/javascripts/bower/codemirror/addon/hint/javascript-hint.js +146 -0
  45. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.css +38 -0
  46. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.js +389 -0
  47. data/vendor/assets/javascripts/bower/codemirror/addon/hint/sql-hint.js +197 -0
  48. data/vendor/assets/javascripts/bower/codemirror/addon/hint/xml-hint.js +110 -0
  49. data/vendor/assets/javascripts/bower/codemirror/addon/lint/coffeescript-lint.js +41 -0
  50. data/vendor/assets/javascripts/bower/codemirror/addon/lint/css-lint.js +35 -0
  51. data/vendor/assets/javascripts/bower/codemirror/addon/lint/javascript-lint.js +136 -0
  52. data/vendor/assets/javascripts/bower/codemirror/addon/lint/json-lint.js +31 -0
  53. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.css +73 -0
  54. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.js +204 -0
  55. data/vendor/assets/javascripts/bower/codemirror/addon/lint/yaml-lint.js +28 -0
  56. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.css +112 -0
  57. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.js +643 -0
  58. data/vendor/assets/javascripts/bower/codemirror/addon/mode/loadmode.js +64 -0
  59. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex.js +118 -0
  60. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex_test.js +33 -0
  61. data/vendor/assets/javascripts/bower/codemirror/addon/mode/overlay.js +85 -0
  62. data/vendor/assets/javascripts/bower/codemirror/addon/mode/simple.js +213 -0
  63. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/colorize.js +40 -0
  64. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode-standalone.js +157 -0
  65. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.js +72 -0
  66. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.node.js +120 -0
  67. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/annotatescrollbar.js +76 -0
  68. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/scrollpastend.js +46 -0
  69. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.css +66 -0
  70. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.js +139 -0
  71. data/vendor/assets/javascripts/bower/codemirror/addon/search/match-highlighter.js +128 -0
  72. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.css +8 -0
  73. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.js +90 -0
  74. data/vendor/assets/javascripts/bower/codemirror/addon/search/search.js +164 -0
  75. data/vendor/assets/javascripts/bower/codemirror/addon/search/searchcursor.js +189 -0
  76. data/vendor/assets/javascripts/bower/codemirror/addon/selection/active-line.js +71 -0
  77. data/vendor/assets/javascripts/bower/codemirror/addon/selection/mark-selection.js +118 -0
  78. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.css +86 -0
  79. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.js +670 -0
  80. data/vendor/assets/javascripts/bower/codemirror/addon/tern/worker.js +44 -0
  81. data/vendor/assets/javascripts/bower/codemirror/addon/wrap/hardwrap.js +139 -0
  82. data/vendor/assets/javascripts/bower/codemirror/bower.json +16 -0
  83. data/vendor/assets/javascripts/bower/codemirror/keymap/emacs.js +411 -0
  84. data/vendor/assets/javascripts/bower/codemirror/keymap/sublime.js +540 -0
  85. data/vendor/assets/javascripts/bower/codemirror/keymap/vim.js +4901 -0
  86. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.css +309 -0
  87. data/vendor/assets/javascripts/bower/codemirror/lib/codemirror.js +8029 -0
  88. data/vendor/assets/javascripts/bower/codemirror/mode/apl/apl.js +175 -0
  89. data/vendor/assets/javascripts/bower/codemirror/mode/asterisk/asterisk.js +198 -0
  90. data/vendor/assets/javascripts/bower/codemirror/mode/clike/clike.js +489 -0
  91. data/vendor/assets/javascripts/bower/codemirror/mode/clike/scala.html +767 -0
  92. data/vendor/assets/javascripts/bower/codemirror/mode/clojure/clojure.js +243 -0
  93. data/vendor/assets/javascripts/bower/codemirror/mode/cobol/cobol.js +255 -0
  94. data/vendor/assets/javascripts/bower/codemirror/mode/coffeescript/coffeescript.js +369 -0
  95. data/vendor/assets/javascripts/bower/codemirror/mode/commonlisp/commonlisp.js +122 -0
  96. data/vendor/assets/javascripts/bower/codemirror/mode/css/css.js +717 -0
  97. data/vendor/assets/javascripts/bower/codemirror/mode/css/less.html +152 -0
  98. data/vendor/assets/javascripts/bower/codemirror/mode/css/less_test.js +51 -0
  99. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss.html +157 -0
  100. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss_test.js +110 -0
  101. data/vendor/assets/javascripts/bower/codemirror/mode/css/test.js +135 -0
  102. data/vendor/assets/javascripts/bower/codemirror/mode/cypher/cypher.js +146 -0
  103. data/vendor/assets/javascripts/bower/codemirror/mode/d/d.js +218 -0
  104. data/vendor/assets/javascripts/bower/codemirror/mode/dart/dart.js +50 -0
  105. data/vendor/assets/javascripts/bower/codemirror/mode/diff/diff.js +47 -0
  106. data/vendor/assets/javascripts/bower/codemirror/mode/django/django.js +67 -0
  107. data/vendor/assets/javascripts/bower/codemirror/mode/dockerfile/dockerfile.js +76 -0
  108. data/vendor/assets/javascripts/bower/codemirror/mode/dtd/dtd.js +142 -0
  109. data/vendor/assets/javascripts/bower/codemirror/mode/dylan/dylan.js +299 -0
  110. data/vendor/assets/javascripts/bower/codemirror/mode/ebnf/ebnf.js +195 -0
  111. data/vendor/assets/javascripts/bower/codemirror/mode/ecl/ecl.js +207 -0
  112. data/vendor/assets/javascripts/bower/codemirror/mode/eiffel/eiffel.js +162 -0
  113. data/vendor/assets/javascripts/bower/codemirror/mode/erlang/erlang.js +622 -0
  114. data/vendor/assets/javascripts/bower/codemirror/mode/fortran/fortran.js +188 -0
  115. data/vendor/assets/javascripts/bower/codemirror/mode/gas/gas.js +345 -0
  116. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/gfm.js +123 -0
  117. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/test.js +213 -0
  118. data/vendor/assets/javascripts/bower/codemirror/mode/gherkin/gherkin.js +178 -0
  119. data/vendor/assets/javascripts/bower/codemirror/mode/go/go.js +184 -0
  120. data/vendor/assets/javascripts/bower/codemirror/mode/groovy/groovy.js +226 -0
  121. data/vendor/assets/javascripts/bower/codemirror/mode/haml/haml.js +159 -0
  122. data/vendor/assets/javascripts/bower/codemirror/mode/haml/test.js +97 -0
  123. data/vendor/assets/javascripts/bower/codemirror/mode/haskell/haskell.js +267 -0
  124. data/vendor/assets/javascripts/bower/codemirror/mode/haxe/haxe.js +518 -0
  125. data/vendor/assets/javascripts/bower/codemirror/mode/htmlembedded/htmlembedded.js +86 -0
  126. data/vendor/assets/javascripts/bower/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  127. data/vendor/assets/javascripts/bower/codemirror/mode/http/http.js +113 -0
  128. data/vendor/assets/javascripts/bower/codemirror/mode/idl/idl.js +290 -0
  129. data/vendor/assets/javascripts/bower/codemirror/mode/jade/jade.js +590 -0
  130. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/javascript.js +686 -0
  131. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/json-ld.html +72 -0
  132. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/test.js +200 -0
  133. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/typescript.html +61 -0
  134. data/vendor/assets/javascripts/bower/codemirror/mode/jinja2/jinja2.js +142 -0
  135. data/vendor/assets/javascripts/bower/codemirror/mode/julia/julia.js +301 -0
  136. data/vendor/assets/javascripts/bower/codemirror/mode/kotlin/kotlin.js +280 -0
  137. data/vendor/assets/javascripts/bower/codemirror/mode/livescript/livescript.js +280 -0
  138. data/vendor/assets/javascripts/bower/codemirror/mode/lua/lua.js +159 -0
  139. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/markdown.js +765 -0
  140. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/test.js +754 -0
  141. data/vendor/assets/javascripts/bower/codemirror/mode/meta.js +165 -0
  142. data/vendor/assets/javascripts/bower/codemirror/mode/mirc/mirc.js +193 -0
  143. data/vendor/assets/javascripts/bower/codemirror/mode/mllike/mllike.js +205 -0
  144. data/vendor/assets/javascripts/bower/codemirror/mode/modelica/modelica.js +245 -0
  145. data/vendor/assets/javascripts/bower/codemirror/mode/nginx/nginx.js +178 -0
  146. data/vendor/assets/javascripts/bower/codemirror/mode/ntriples/ntriples.js +186 -0
  147. data/vendor/assets/javascripts/bower/codemirror/mode/octave/octave.js +135 -0
  148. data/vendor/assets/javascripts/bower/codemirror/mode/pascal/pascal.js +109 -0
  149. data/vendor/assets/javascripts/bower/codemirror/mode/pegjs/pegjs.js +114 -0
  150. data/vendor/assets/javascripts/bower/codemirror/mode/perl/perl.js +832 -0
  151. data/vendor/assets/javascripts/bower/codemirror/mode/php/php.js +226 -0
  152. data/vendor/assets/javascripts/bower/codemirror/mode/php/test.js +154 -0
  153. data/vendor/assets/javascripts/bower/codemirror/mode/pig/pig.js +188 -0
  154. data/vendor/assets/javascripts/bower/codemirror/mode/properties/properties.js +78 -0
  155. data/vendor/assets/javascripts/bower/codemirror/mode/puppet/puppet.js +220 -0
  156. data/vendor/assets/javascripts/bower/codemirror/mode/python/python.js +359 -0
  157. data/vendor/assets/javascripts/bower/codemirror/mode/q/q.js +139 -0
  158. data/vendor/assets/javascripts/bower/codemirror/mode/r/r.js +162 -0
  159. data/vendor/assets/javascripts/bower/codemirror/mode/rpm/rpm.js +101 -0
  160. data/vendor/assets/javascripts/bower/codemirror/mode/rst/rst.js +557 -0
  161. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/ruby.js +285 -0
  162. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/test.js +14 -0
  163. data/vendor/assets/javascripts/bower/codemirror/mode/rust/rust.js +451 -0
  164. data/vendor/assets/javascripts/bower/codemirror/mode/sass/sass.js +327 -0
  165. data/vendor/assets/javascripts/bower/codemirror/mode/scheme/scheme.js +248 -0
  166. data/vendor/assets/javascripts/bower/codemirror/mode/shell/shell.js +139 -0
  167. data/vendor/assets/javascripts/bower/codemirror/mode/shell/test.js +58 -0
  168. data/vendor/assets/javascripts/bower/codemirror/mode/sieve/sieve.js +193 -0
  169. data/vendor/assets/javascripts/bower/codemirror/mode/slim/slim.js +575 -0
  170. data/vendor/assets/javascripts/bower/codemirror/mode/slim/test.js +96 -0
  171. data/vendor/assets/javascripts/bower/codemirror/mode/smalltalk/smalltalk.js +168 -0
  172. data/vendor/assets/javascripts/bower/codemirror/mode/smarty/smarty.js +221 -0
  173. data/vendor/assets/javascripts/bower/codemirror/mode/smartymixed/smartymixed.js +197 -0
  174. data/vendor/assets/javascripts/bower/codemirror/mode/solr/solr.js +104 -0
  175. data/vendor/assets/javascripts/bower/codemirror/mode/soy/soy.js +198 -0
  176. data/vendor/assets/javascripts/bower/codemirror/mode/sparql/sparql.js +174 -0
  177. data/vendor/assets/javascripts/bower/codemirror/mode/spreadsheet/spreadsheet.js +109 -0
  178. data/vendor/assets/javascripts/bower/codemirror/mode/sql/sql.js +391 -0
  179. data/vendor/assets/javascripts/bower/codemirror/mode/stex/stex.js +251 -0
  180. data/vendor/assets/javascripts/bower/codemirror/mode/stex/test.js +123 -0
  181. data/vendor/assets/javascripts/bower/codemirror/mode/tcl/tcl.js +147 -0
  182. data/vendor/assets/javascripts/bower/codemirror/mode/textile/test.js +417 -0
  183. data/vendor/assets/javascripts/bower/codemirror/mode/textile/textile.js +469 -0
  184. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  185. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.js +369 -0
  186. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.css +26 -0
  187. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.js +323 -0
  188. data/vendor/assets/javascripts/bower/codemirror/mode/toml/toml.js +88 -0
  189. data/vendor/assets/javascripts/bower/codemirror/mode/tornado/tornado.js +68 -0
  190. data/vendor/assets/javascripts/bower/codemirror/mode/turtle/turtle.js +162 -0
  191. data/vendor/assets/javascripts/bower/codemirror/mode/vb/vb.js +274 -0
  192. data/vendor/assets/javascripts/bower/codemirror/mode/vbscript/vbscript.js +350 -0
  193. data/vendor/assets/javascripts/bower/codemirror/mode/velocity/velocity.js +201 -0
  194. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/test.js +273 -0
  195. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/verilog.js +364 -0
  196. data/vendor/assets/javascripts/bower/codemirror/mode/xml/test.js +51 -0
  197. data/vendor/assets/javascripts/bower/codemirror/mode/xml/xml.js +384 -0
  198. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/test.js +67 -0
  199. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/xquery.js +447 -0
  200. data/vendor/assets/javascripts/bower/codemirror/mode/yaml/yaml.js +117 -0
  201. data/vendor/assets/javascripts/bower/codemirror/mode/z80/z80.js +100 -0
  202. data/vendor/assets/javascripts/bower/codemirror/theme/3024-day.css +38 -0
  203. data/vendor/assets/javascripts/bower/codemirror/theme/3024-night.css +37 -0
  204. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance-mobile.css +5 -0
  205. data/vendor/assets/javascripts/bower/codemirror/theme/ambiance.css +77 -0
  206. data/vendor/assets/javascripts/bower/codemirror/theme/base16-dark.css +36 -0
  207. data/vendor/assets/javascripts/bower/codemirror/theme/base16-light.css +36 -0
  208. data/vendor/assets/javascripts/bower/codemirror/theme/blackboard.css +30 -0
  209. data/vendor/assets/javascripts/bower/codemirror/theme/cobalt.css +23 -0
  210. data/vendor/assets/javascripts/bower/codemirror/theme/eclipse.css +23 -0
  211. data/vendor/assets/javascripts/bower/codemirror/theme/elegant.css +13 -0
  212. data/vendor/assets/javascripts/bower/codemirror/theme/erlang-dark.css +32 -0
  213. data/vendor/assets/javascripts/bower/codemirror/theme/lesser-dark.css +45 -0
  214. data/vendor/assets/javascripts/bower/codemirror/theme/mbo.css +35 -0
  215. data/vendor/assets/javascripts/bower/codemirror/theme/mdn-like.css +44 -0
  216. data/vendor/assets/javascripts/bower/codemirror/theme/midnight.css +45 -0
  217. data/vendor/assets/javascripts/bower/codemirror/theme/monokai.css +31 -0
  218. data/vendor/assets/javascripts/bower/codemirror/theme/neat.css +12 -0
  219. data/vendor/assets/javascripts/bower/codemirror/theme/neo.css +43 -0
  220. data/vendor/assets/javascripts/bower/codemirror/theme/night.css +26 -0
  221. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-dark.css +36 -0
  222. data/vendor/assets/javascripts/bower/codemirror/theme/paraiso-light.css +36 -0
  223. data/vendor/assets/javascripts/bower/codemirror/theme/pastel-on-dark.css +50 -0
  224. data/vendor/assets/javascripts/bower/codemirror/theme/rubyblue.css +23 -0
  225. data/vendor/assets/javascripts/bower/codemirror/theme/solarized.css +165 -0
  226. data/vendor/assets/javascripts/bower/codemirror/theme/the-matrix.css +28 -0
  227. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-bright.css +35 -0
  228. data/vendor/assets/javascripts/bower/codemirror/theme/tomorrow-night-eighties.css +36 -0
  229. data/vendor/assets/javascripts/bower/codemirror/theme/twilight.css +30 -0
  230. data/vendor/assets/javascripts/bower/codemirror/theme/vibrant-ink.css +32 -0
  231. data/vendor/assets/javascripts/bower/codemirror/theme/xq-dark.css +51 -0
  232. data/vendor/assets/javascripts/bower/codemirror/theme/xq-light.css +43 -0
  233. data/vendor/assets/javascripts/bower/codemirror/theme/zenburn.css +37 -0
  234. metadata +225 -2
@@ -0,0 +1,273 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
3
+
4
+ (function() {
5
+ var mode = CodeMirror.getMode({indentUnit: 4}, "verilog");
6
+ function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7
+
8
+ MT("binary_literals",
9
+ "[number 1'b0]",
10
+ "[number 1'b1]",
11
+ "[number 1'bx]",
12
+ "[number 1'bz]",
13
+ "[number 1'bX]",
14
+ "[number 1'bZ]",
15
+ "[number 1'B0]",
16
+ "[number 1'B1]",
17
+ "[number 1'Bx]",
18
+ "[number 1'Bz]",
19
+ "[number 1'BX]",
20
+ "[number 1'BZ]",
21
+ "[number 1'b0]",
22
+ "[number 1'b1]",
23
+ "[number 2'b01]",
24
+ "[number 2'bxz]",
25
+ "[number 2'b11]",
26
+ "[number 2'b10]",
27
+ "[number 2'b1Z]",
28
+ "[number 12'b0101_0101_0101]",
29
+ "[number 1'b 0]",
30
+ "[number 'b0101]"
31
+ );
32
+
33
+ MT("octal_literals",
34
+ "[number 3'o7]",
35
+ "[number 3'O7]",
36
+ "[number 3'so7]",
37
+ "[number 3'SO7]"
38
+ );
39
+
40
+ MT("decimal_literals",
41
+ "[number 0]",
42
+ "[number 1]",
43
+ "[number 7]",
44
+ "[number 123_456]",
45
+ "[number 'd33]",
46
+ "[number 8'd255]",
47
+ "[number 8'D255]",
48
+ "[number 8'sd255]",
49
+ "[number 8'SD255]",
50
+ "[number 32'd123]",
51
+ "[number 32 'd123]",
52
+ "[number 32 'd 123]"
53
+ );
54
+
55
+ MT("hex_literals",
56
+ "[number 4'h0]",
57
+ "[number 4'ha]",
58
+ "[number 4'hF]",
59
+ "[number 4'hx]",
60
+ "[number 4'hz]",
61
+ "[number 4'hX]",
62
+ "[number 4'hZ]",
63
+ "[number 32'hdc78]",
64
+ "[number 32'hDC78]",
65
+ "[number 32 'hDC78]",
66
+ "[number 32'h DC78]",
67
+ "[number 32 'h DC78]",
68
+ "[number 32'h44x7]",
69
+ "[number 32'hFFF?]"
70
+ );
71
+
72
+ MT("real_number_literals",
73
+ "[number 1.2]",
74
+ "[number 0.1]",
75
+ "[number 2394.26331]",
76
+ "[number 1.2E12]",
77
+ "[number 1.2e12]",
78
+ "[number 1.30e-2]",
79
+ "[number 0.1e-0]",
80
+ "[number 23E10]",
81
+ "[number 29E-2]",
82
+ "[number 236.123_763_e-12]"
83
+ );
84
+
85
+ MT("operators",
86
+ "[meta ^]"
87
+ );
88
+
89
+ MT("keywords",
90
+ "[keyword logic]",
91
+ "[keyword logic] [variable foo]",
92
+ "[keyword reg] [variable abc]"
93
+ );
94
+
95
+ MT("variables",
96
+ "[variable _leading_underscore]",
97
+ "[variable _if]",
98
+ "[number 12] [variable foo]",
99
+ "[variable foo] [number 14]"
100
+ );
101
+
102
+ MT("tick_defines",
103
+ "[def `FOO]",
104
+ "[def `foo]",
105
+ "[def `FOO_bar]"
106
+ );
107
+
108
+ MT("system_calls",
109
+ "[meta $display]",
110
+ "[meta $vpi_printf]"
111
+ );
112
+
113
+ MT("line_comment", "[comment // Hello world]");
114
+
115
+ // Alignment tests
116
+ MT("align_port_map_style1",
117
+ /**
118
+ * mod mod(.a(a),
119
+ * .b(b)
120
+ * );
121
+ */
122
+ "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],",
123
+ " .[variable b][bracket (][variable b][bracket )]",
124
+ " [bracket )];",
125
+ ""
126
+ );
127
+
128
+ MT("align_port_map_style2",
129
+ /**
130
+ * mod mod(
131
+ * .a(a),
132
+ * .b(b)
133
+ * );
134
+ */
135
+ "[variable mod] [variable mod][bracket (]",
136
+ " .[variable a][bracket (][variable a][bracket )],",
137
+ " .[variable b][bracket (][variable b][bracket )]",
138
+ "[bracket )];",
139
+ ""
140
+ );
141
+
142
+ // Indentation tests
143
+ MT("indent_single_statement_if",
144
+ "[keyword if] [bracket (][variable foo][bracket )]",
145
+ " [keyword break];",
146
+ ""
147
+ );
148
+
149
+ MT("no_indent_after_single_line_if",
150
+ "[keyword if] [bracket (][variable foo][bracket )] [keyword break];",
151
+ ""
152
+ );
153
+
154
+ MT("indent_after_if_begin_same_line",
155
+ "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
156
+ " [keyword break];",
157
+ " [keyword break];",
158
+ "[keyword end]",
159
+ ""
160
+ );
161
+
162
+ MT("indent_after_if_begin_next_line",
163
+ "[keyword if] [bracket (][variable foo][bracket )]",
164
+ " [keyword begin]",
165
+ " [keyword break];",
166
+ " [keyword break];",
167
+ " [keyword end]",
168
+ ""
169
+ );
170
+
171
+ MT("indent_single_statement_if_else",
172
+ "[keyword if] [bracket (][variable foo][bracket )]",
173
+ " [keyword break];",
174
+ "[keyword else]",
175
+ " [keyword break];",
176
+ ""
177
+ );
178
+
179
+ MT("indent_if_else_begin_same_line",
180
+ "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
181
+ " [keyword break];",
182
+ " [keyword break];",
183
+ "[keyword end] [keyword else] [keyword begin]",
184
+ " [keyword break];",
185
+ " [keyword break];",
186
+ "[keyword end]",
187
+ ""
188
+ );
189
+
190
+ MT("indent_if_else_begin_next_line",
191
+ "[keyword if] [bracket (][variable foo][bracket )]",
192
+ " [keyword begin]",
193
+ " [keyword break];",
194
+ " [keyword break];",
195
+ " [keyword end]",
196
+ "[keyword else]",
197
+ " [keyword begin]",
198
+ " [keyword break];",
199
+ " [keyword break];",
200
+ " [keyword end]",
201
+ ""
202
+ );
203
+
204
+ MT("indent_if_nested_without_begin",
205
+ "[keyword if] [bracket (][variable foo][bracket )]",
206
+ " [keyword if] [bracket (][variable foo][bracket )]",
207
+ " [keyword if] [bracket (][variable foo][bracket )]",
208
+ " [keyword break];",
209
+ ""
210
+ );
211
+
212
+ MT("indent_case",
213
+ "[keyword case] [bracket (][variable state][bracket )]",
214
+ " [variable FOO]:",
215
+ " [keyword break];",
216
+ " [variable BAR]:",
217
+ " [keyword break];",
218
+ "[keyword endcase]",
219
+ ""
220
+ );
221
+
222
+ MT("unindent_after_end_with_preceding_text",
223
+ "[keyword begin]",
224
+ " [keyword break]; [keyword end]",
225
+ ""
226
+ );
227
+
228
+ MT("export_function_one_line_does_not_indent",
229
+ "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
230
+ ""
231
+ );
232
+
233
+ MT("export_task_one_line_does_not_indent",
234
+ "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
235
+ ""
236
+ );
237
+
238
+ MT("export_function_two_lines_indents_properly",
239
+ "[keyword export]",
240
+ " [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
241
+ ""
242
+ );
243
+
244
+ MT("export_task_two_lines_indents_properly",
245
+ "[keyword export]",
246
+ " [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
247
+ ""
248
+ );
249
+
250
+ MT("import_function_one_line_does_not_indent",
251
+ "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];",
252
+ ""
253
+ );
254
+
255
+ MT("import_task_one_line_does_not_indent",
256
+ "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];",
257
+ ""
258
+ );
259
+
260
+ MT("import_package_single_line_does_not_indent",
261
+ "[keyword import] [variable p]::[variable x];",
262
+ "[keyword import] [variable p]::[variable y];",
263
+ ""
264
+ );
265
+
266
+ MT("covergoup_with_function_indents_properly",
267
+ "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];",
268
+ " [variable c] : [keyword coverpoint] [variable c];",
269
+ "[keyword endgroup]: [variable cg]",
270
+ ""
271
+ );
272
+
273
+ })();
@@ -0,0 +1,364 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ CodeMirror.defineMode("verilog", function(config, parserConfig) {
15
+
16
+ var indentUnit = config.indentUnit,
17
+ statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
18
+ dontAlignCalls = parserConfig.dontAlignCalls,
19
+ noIndentKeywords = parserConfig.noIndentKeywords || [],
20
+ multiLineStrings = parserConfig.multiLineStrings;
21
+
22
+ function words(str) {
23
+ var obj = {}, words = str.split(" ");
24
+ for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
25
+ return obj;
26
+ }
27
+
28
+ /**
29
+ * Keywords from IEEE 1800-2012
30
+ */
31
+ var keywords = words(
32
+ "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " +
33
+ "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " +
34
+ "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " +
35
+ "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " +
36
+ "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " +
37
+ "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " +
38
+ "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " +
39
+ "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " +
40
+ "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " +
41
+ "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " +
42
+ "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " +
43
+ "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " +
44
+ "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " +
45
+ "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " +
46
+ "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " +
47
+ "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " +
48
+ "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " +
49
+ "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");
50
+
51
+ /** Operators from IEEE 1800-2012
52
+ unary_operator ::=
53
+ + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
54
+ binary_operator ::=
55
+ + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **
56
+ | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<
57
+ | -> | <->
58
+ inc_or_dec_operator ::= ++ | --
59
+ unary_module_path_operator ::=
60
+ ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
61
+ binary_module_path_operator ::=
62
+ == | != | && | || | & | | | ^ | ^~ | ~^
63
+ */
64
+ var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/;
65
+ var isBracketChar = /[\[\]{}()]/;
66
+
67
+ var unsignedNumber = /\d[0-9_]*/;
68
+ var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i;
69
+ var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i;
70
+ var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;
71
+ var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;
72
+ var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;
73
+
74
+ var closingBracketOrWord = /^((\w+)|[)}\]])/;
75
+ var closingBracket = /[)}\]]/;
76
+
77
+ var curPunc;
78
+ var curKeyword;
79
+
80
+ // Block openings which are closed by a matching keyword in the form of ("end" + keyword)
81
+ // E.g. "task" => "endtask"
82
+ var blockKeywords = words(
83
+ "case checker class clocking config function generate interface module package" +
84
+ "primitive program property specify sequence table task"
85
+ );
86
+
87
+ // Opening/closing pairs
88
+ var openClose = {};
89
+ for (var keyword in blockKeywords) {
90
+ openClose[keyword] = "end" + keyword;
91
+ }
92
+ openClose["begin"] = "end";
93
+ openClose["casex"] = "endcase";
94
+ openClose["casez"] = "endcase";
95
+ openClose["do" ] = "while";
96
+ openClose["fork" ] = "join;join_any;join_none";
97
+ openClose["covergroup"] = "endgroup";
98
+
99
+ for (var i in noIndentKeywords) {
100
+ var keyword = noIndentKeywords[i];
101
+ if (openClose[keyword]) {
102
+ openClose[keyword] = undefined;
103
+ }
104
+ }
105
+
106
+ // Keywords which open statements that are ended with a semi-colon
107
+ var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");
108
+
109
+ function tokenBase(stream, state) {
110
+ var ch = stream.peek();
111
+ if (/[,;:\.]/.test(ch)) {
112
+ curPunc = stream.next();
113
+ return null;
114
+ }
115
+ if (isBracketChar.test(ch)) {
116
+ curPunc = stream.next();
117
+ return "bracket";
118
+ }
119
+ // Macros (tick-defines)
120
+ if (ch == '`') {
121
+ stream.next();
122
+ if (stream.eatWhile(/[\w\$_]/)) {
123
+ return "def";
124
+ } else {
125
+ return null;
126
+ }
127
+ }
128
+ // System calls
129
+ if (ch == '$') {
130
+ stream.next();
131
+ if (stream.eatWhile(/[\w\$_]/)) {
132
+ return "meta";
133
+ } else {
134
+ return null;
135
+ }
136
+ }
137
+ // Time literals
138
+ if (ch == '#') {
139
+ stream.next();
140
+ stream.eatWhile(/[\d_.]/);
141
+ return "def";
142
+ }
143
+ // Strings
144
+ if (ch == '"') {
145
+ stream.next();
146
+ state.tokenize = tokenString(ch);
147
+ return state.tokenize(stream, state);
148
+ }
149
+ // Comments
150
+ if (ch == "/") {
151
+ stream.next();
152
+ if (stream.eat("*")) {
153
+ state.tokenize = tokenComment;
154
+ return tokenComment(stream, state);
155
+ }
156
+ if (stream.eat("/")) {
157
+ stream.skipToEnd();
158
+ return "comment";
159
+ }
160
+ stream.backUp(1);
161
+ }
162
+
163
+ // Numeric literals
164
+ if (stream.match(realLiteral) ||
165
+ stream.match(decimalLiteral) ||
166
+ stream.match(binaryLiteral) ||
167
+ stream.match(octLiteral) ||
168
+ stream.match(hexLiteral) ||
169
+ stream.match(unsignedNumber) ||
170
+ stream.match(realLiteral)) {
171
+ return "number";
172
+ }
173
+
174
+ // Operators
175
+ if (stream.eatWhile(isOperatorChar)) {
176
+ return "meta";
177
+ }
178
+
179
+ // Keywords / plain variables
180
+ if (stream.eatWhile(/[\w\$_]/)) {
181
+ var cur = stream.current();
182
+ if (keywords[cur]) {
183
+ if (openClose[cur]) {
184
+ curPunc = "newblock";
185
+ }
186
+ if (statementKeywords[cur]) {
187
+ curPunc = "newstatement";
188
+ }
189
+ curKeyword = cur;
190
+ return "keyword";
191
+ }
192
+ return "variable";
193
+ }
194
+
195
+ stream.next();
196
+ return null;
197
+ }
198
+
199
+ function tokenString(quote) {
200
+ return function(stream, state) {
201
+ var escaped = false, next, end = false;
202
+ while ((next = stream.next()) != null) {
203
+ if (next == quote && !escaped) {end = true; break;}
204
+ escaped = !escaped && next == "\\";
205
+ }
206
+ if (end || !(escaped || multiLineStrings))
207
+ state.tokenize = tokenBase;
208
+ return "string";
209
+ };
210
+ }
211
+
212
+ function tokenComment(stream, state) {
213
+ var maybeEnd = false, ch;
214
+ while (ch = stream.next()) {
215
+ if (ch == "/" && maybeEnd) {
216
+ state.tokenize = tokenBase;
217
+ break;
218
+ }
219
+ maybeEnd = (ch == "*");
220
+ }
221
+ return "comment";
222
+ }
223
+
224
+ function Context(indented, column, type, align, prev) {
225
+ this.indented = indented;
226
+ this.column = column;
227
+ this.type = type;
228
+ this.align = align;
229
+ this.prev = prev;
230
+ }
231
+ function pushContext(state, col, type) {
232
+ var indent = state.indented;
233
+ var c = new Context(indent, col, type, null, state.context);
234
+ return state.context = c;
235
+ }
236
+ function popContext(state) {
237
+ var t = state.context.type;
238
+ if (t == ")" || t == "]" || t == "}") {
239
+ state.indented = state.context.indented;
240
+ }
241
+ return state.context = state.context.prev;
242
+ }
243
+
244
+ function isClosing(text, contextClosing) {
245
+ if (text == contextClosing) {
246
+ return true;
247
+ } else {
248
+ // contextClosing may be mulitple keywords separated by ;
249
+ var closingKeywords = contextClosing.split(";");
250
+ for (var i in closingKeywords) {
251
+ if (text == closingKeywords[i]) {
252
+ return true;
253
+ }
254
+ }
255
+ return false;
256
+ }
257
+ }
258
+
259
+ function buildElectricInputRegEx() {
260
+ // Reindentation should occur on any bracket char: {}()[]
261
+ // or on a match of any of the block closing keywords, at
262
+ // the end of a line
263
+ var allClosings = [];
264
+ for (var i in openClose) {
265
+ if (openClose[i]) {
266
+ var closings = openClose[i].split(";");
267
+ for (var j in closings) {
268
+ allClosings.push(closings[j]);
269
+ }
270
+ }
271
+ }
272
+ var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$");
273
+ return re;
274
+ }
275
+
276
+ // Interface
277
+ return {
278
+
279
+ // Regex to force current line to reindent
280
+ electricInput: buildElectricInputRegEx(),
281
+
282
+ startState: function(basecolumn) {
283
+ return {
284
+ tokenize: null,
285
+ context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
286
+ indented: 0,
287
+ startOfLine: true
288
+ };
289
+ },
290
+
291
+ token: function(stream, state) {
292
+ var ctx = state.context;
293
+ if (stream.sol()) {
294
+ if (ctx.align == null) ctx.align = false;
295
+ state.indented = stream.indentation();
296
+ state.startOfLine = true;
297
+ }
298
+ if (stream.eatSpace()) return null;
299
+ curPunc = null;
300
+ curKeyword = null;
301
+ var style = (state.tokenize || tokenBase)(stream, state);
302
+ if (style == "comment" || style == "meta" || style == "variable") return style;
303
+ if (ctx.align == null) ctx.align = true;
304
+
305
+ if (curPunc == ctx.type) {
306
+ popContext(state);
307
+ }
308
+ else if ((curPunc == ";" && ctx.type == "statement") ||
309
+ (ctx.type && isClosing(curKeyword, ctx.type))) {
310
+ ctx = popContext(state);
311
+ while (ctx && ctx.type == "statement") ctx = popContext(state);
312
+ }
313
+ else if (curPunc == "{") { pushContext(state, stream.column(), "}"); }
314
+ else if (curPunc == "[") { pushContext(state, stream.column(), "]"); }
315
+ else if (curPunc == "(") { pushContext(state, stream.column(), ")"); }
316
+ else if (ctx && ctx.type == "endcase" && curPunc == ":") { pushContext(state, stream.column(), "statement"); }
317
+ else if (curPunc == "newstatement") {
318
+ pushContext(state, stream.column(), "statement");
319
+ } else if (curPunc == "newblock") {
320
+ if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) {
321
+ // The 'function' keyword can appear in some other contexts where it actually does not
322
+ // indicate a function (import/export DPI and covergroup definitions).
323
+ // Do nothing in this case
324
+ } else if (curKeyword == "task" && ctx && ctx.type == "statement") {
325
+ // Same thing for task
326
+ } else {
327
+ var close = openClose[curKeyword];
328
+ pushContext(state, stream.column(), close);
329
+ }
330
+ }
331
+
332
+ state.startOfLine = false;
333
+ return style;
334
+ },
335
+
336
+ indent: function(state, textAfter) {
337
+ if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
338
+ var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
339
+ if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
340
+ var closing = false;
341
+ var possibleClosing = textAfter.match(closingBracketOrWord);
342
+ if (possibleClosing) {
343
+ closing = isClosing(possibleClosing[0], ctx.type);
344
+ }
345
+ if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
346
+ else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);
347
+ else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit;
348
+ else return ctx.indented + (closing ? 0 : indentUnit);
349
+ },
350
+
351
+ blockCommentStart: "/*",
352
+ blockCommentEnd: "*/",
353
+ lineComment: "//"
354
+ };
355
+ });
356
+
357
+ CodeMirror.defineMIME("text/x-verilog", {
358
+ name: "verilog"
359
+ });
360
+ CodeMirror.defineMIME("text/x-systemverilog", {
361
+ name: "systemverilog"
362
+ });
363
+
364
+ });