github-linguist 5.3.3 → 6.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.
- checksums.yaml +4 -4
- data/bin/git-linguist +5 -2
- data/ext/linguist/linguist.c +18 -7
- data/grammars/annotation.liquidhaskell.haskell.json +969 -862
- data/grammars/config.xcompose.json +22 -25
- data/grammars/file.lasso.json +296 -309
- data/grammars/hint.haskell.json +867 -766
- data/grammars/hint.message.haskell.json +867 -766
- data/grammars/hint.type.haskell.json +867 -766
- data/grammars/objdump.x86asm.json +20 -24
- data/grammars/source.Kotlin.json +220 -225
- data/grammars/source.LS.json +36 -55
- data/grammars/source.MCPOST.json +24 -38
- data/grammars/source.MOD.json +26 -41
- data/grammars/source.SASLog.json +9 -16
- data/grammars/source.abap.json +48 -56
- data/grammars/source.abl.json +8 -14
- data/grammars/source.abnf.json +88 -98
- data/grammars/source.actionscript.3.json +398 -429
- data/grammars/source.acucobol.json +5 -8
- data/grammars/source.ada.json +46 -53
- data/grammars/source.afm.json +548 -554
- data/grammars/source.agc.json +34 -37
- data/grammars/source.agda.json +79 -91
- data/grammars/source.ahk.json +62 -66
- data/grammars/source.alloy.json +16 -20
- data/grammars/source.ampl.json +41 -47
- data/grammars/source.angelscript.json +71 -80
- data/grammars/source.antlr.json +131 -136
- data/grammars/source.apache-config.json +93 -99
- data/grammars/source.apache-config.mod_perl.json +19 -24
- data/grammars/source.apl.json +1038 -1029
- data/grammars/source.applescript.json +501 -523
- data/grammars/source.apt.json +9 -16
- data/grammars/source.asn.json +27 -31
- data/grammars/source.asp.json +61 -67
- data/grammars/source.aspectj.json +385 -391
- data/grammars/source.assembly.json +49 -55
- data/grammars/source.ats.json +45 -121
- data/grammars/source.autoit.json +64 -69
- data/grammars/source.awk.json +172 -176
- data/grammars/source.ballerina.json +48 -395
- data/grammars/source.batchfile.json +269 -269
- data/grammars/source.befunge.json +17 -21
- data/grammars/source.bf.json +5 -11
- data/grammars/source.bison.json +10 -14
- data/grammars/source.blitzmax.json +300 -305
- data/grammars/source.boo.json +189 -193
- data/grammars/source.brightauthorproject.json +8 -13
- data/grammars/source.brightscript.json +37 -47
- data/grammars/source.bro.json +134 -140
- data/grammars/source.bsl.json +152 -193
- data/grammars/source.bsv.json +96 -102
- data/grammars/source.c++.json +176 -193
- data/grammars/source.c++.qt.json +13 -21
- data/grammars/source.c.ec.json +15 -21
- data/grammars/source.c.json +237 -251
- data/grammars/source.c.platform.json +153 -159
- data/grammars/source.c2hs.json +3 -6
- data/grammars/source.cabal.json +17 -20
- data/grammars/source.cache.cmake.json +18 -23
- data/grammars/source.cake.json +4 -7
- data/grammars/source.camlp4.ocaml.json +24 -27
- data/grammars/source.capnp.json +33 -38
- data/grammars/source.ceylon.json +44 -50
- data/grammars/source.cfscript.cfc.json +78 -86
- data/grammars/source.cfscript.json +513 -520
- data/grammars/source.changelogs.rpm-spec.json +8 -16
- data/grammars/source.chapel.json +109 -87
- data/grammars/source.cirru.json +25 -30
- data/grammars/source.clarion.json +41 -54
- data/grammars/source.clean.json +90 -95
- data/grammars/source.click.json +25 -28
- data/grammars/source.clips.json +10 -23
- data/grammars/source.clojure.json +151 -168
- data/grammars/source.cm.json +14 -19
- data/grammars/source.cmake.json +53 -61
- data/grammars/source.cobol.json +165 -180
- data/grammars/source.coffee.json +454 -462
- data/grammars/source.cool.json +36 -43
- data/grammars/source.coq.json +17 -21
- data/grammars/source.crystal.json +889 -983
- data/grammars/source.cs.json +739 -740
- data/grammars/source.csound-document.json +69 -73
- data/grammars/source.csound-score.json +52 -55
- data/grammars/source.csound.json +167 -171
- data/grammars/source.css.json +683 -688
- data/grammars/source.css.less.json +211 -511
- data/grammars/source.css.mss.json +94 -101
- data/grammars/source.css.postcss.sugarss.json +260 -0
- data/grammars/source.csx.json +4 -7
- data/grammars/source.cuda-c++.json +47 -81
- data/grammars/source.cwl.json +103 -0
- data/grammars/source.cython.json +536 -582
- data/grammars/source.d.json +243 -252
- data/grammars/source.dart.json +161 -166
- data/grammars/source.data-weave.json +901 -905
- data/grammars/source.desktop.json +29 -33
- data/grammars/source.diff.json +43 -52
- data/grammars/source.disasm.json +15 -16
- data/grammars/source.ditroff.desc.json +73 -84
- data/grammars/source.ditroff.json +60 -61
- data/grammars/source.dm.json +202 -213
- data/grammars/source.dmf.json +44 -47
- data/grammars/source.dockerfile.json +29 -34
- data/grammars/source.dot.json +46 -55
- data/grammars/source.dylan.json +63 -68
- data/grammars/source.ebnf.json +55 -62
- data/grammars/source.eiffel.json +57 -62
- data/grammars/source.elixir.json +321 -366
- data/grammars/source.emacs.lisp.json +458 -249
- data/grammars/source.erazor.json +49 -57
- data/grammars/source.erlang.json +508 -515
- data/grammars/source.essl.json +17 -30
- data/grammars/source.factor.json +85 -91
- data/grammars/source.fan.json +92 -96
- data/grammars/source.fancy.json +93 -118
- data/grammars/source.fish.json +74 -98
- data/grammars/source.fontforge.json +142 -146
- data/grammars/source.forth.json +42 -57
- data/grammars/source.fortran.json +193 -231
- data/grammars/source.fortran.modern.json +77 -103
- data/grammars/source.fsharp.fsi.json +1 -6
- data/grammars/source.fsharp.fsl.json +1 -6
- data/grammars/source.fsharp.fsx.json +1 -6
- data/grammars/source.fsharp.json +148 -153
- data/grammars/source.gap.json +60 -70
- data/grammars/source.gcode.json +9 -16
- data/grammars/source.gdb.json +63 -79
- data/grammars/source.gdb.session.json +27 -28
- data/grammars/source.gdbregs.json +7 -8
- data/grammars/source.gdscript.json +92 -96
- data/grammars/source.gerber.json +38 -56
- data/grammars/source.gfm.json +447 -462
- data/grammars/source.glsl.json +58 -83
- data/grammars/source.gn.json +188 -193
- data/grammars/source.gnuplot.json +104 -120
- data/grammars/source.go.json +169 -181
- data/grammars/source.golo.json +82 -87
- data/grammars/source.gosu.2.json +58 -68
- data/grammars/source.grace.json +266 -270
- data/grammars/source.graphql.json +586 -596
- data/grammars/source.groovy.gradle.json +18 -22
- data/grammars/source.groovy.json +422 -433
- data/grammars/source.harbour.json +129 -173
- data/grammars/source.haskell.json +871 -772
- data/grammars/source.haxe.2.json +402 -413
- data/grammars/source.hlsl.json +6 -16
- data/grammars/source.hsc2hs.json +1 -4
- data/grammars/source.hsig.json +871 -770
- data/grammars/source.hss.1.json +122 -144
- data/grammars/source.httpspec.json +119 -123
- data/grammars/source.hxml.json +8 -15
- data/grammars/source.ideal.json +125 -125
- data/grammars/source.idl-dlm.json +25 -32
- data/grammars/source.idl.json +59 -80
- data/grammars/source.idris.json +171 -185
- data/grammars/source.inform7.json +117 -121
- data/grammars/source.ini.json +37 -43
- data/grammars/source.io.json +65 -73
- data/grammars/source.ioke.json +72 -78
- data/grammars/source.isabelle.root.json +26 -30
- data/grammars/source.isabelle.theory.json +46 -50
- data/grammars/source.j.json +18 -21
- data/grammars/source.jasmin.json +45 -50
- data/grammars/source.java-properties.json +31 -41
- data/grammars/source.java.json +333 -342
- data/grammars/source.jcl.json +15 -18
- data/grammars/source.jflex.json +166 -172
- data/grammars/source.jison.json +331 -334
- data/grammars/source.jisonlex-injection.json +1 -2
- data/grammars/source.jisonlex.json +148 -151
- data/grammars/source.jolie.json +37 -43
- data/grammars/source.jq.json +80 -87
- data/grammars/source.js.json +798 -818
- data/grammars/source.js.jsx.json +2115 -2225
- data/grammars/source.js.objj.json +167 -172
- data/grammars/source.js.regexp.json +50 -50
- data/grammars/source.js.regexp.replacement.json +7 -7
- data/grammars/source.jsdoc.json +94 -94
- data/grammars/source.json.json +61 -71
- data/grammars/source.julia.console.json +5 -6
- data/grammars/source.julia.json +237 -234
- data/grammars/source.lean.json +55 -67
- data/grammars/source.lid.json +6 -10
- data/grammars/source.lilypond.json +181 -195
- data/grammars/source.lisp.json +40 -50
- data/grammars/source.litcoffee.json +169 -183
- data/grammars/source.livescript.json +207 -220
- data/grammars/source.llvm.json +28 -38
- data/grammars/source.logos.json +7 -14
- data/grammars/source.logtalk.json +136 -141
- data/grammars/source.loomscript.json +77 -83
- data/grammars/source.lsl.json +90 -106
- data/grammars/source.lua.json +100 -109
- data/grammars/source.makefile.json +181 -188
- data/grammars/source.makegen.json +3 -7
- data/grammars/source.mask.json +260 -265
- data/grammars/source.mata.json +38 -46
- data/grammars/source.mathematica.json +155 -167
- data/grammars/source.matlab.json +407 -684
- data/grammars/source.maxscript.json +293 -281
- data/grammars/source.mercury.json +179 -184
- data/grammars/source.meson.json +52 -58
- data/grammars/source.meta-info.json +64 -74
- data/grammars/source.ml.json +107 -113
- data/grammars/source.modelica.json +51 -59
- data/grammars/source.modula2.json +33 -42
- data/grammars/source.monkey.json +234 -241
- data/grammars/source.moonscript.json +51 -56
- data/grammars/source.mql5.json +74 -101
- data/grammars/source.mupad.json +30 -72
- data/grammars/source.ncl.json +1 -14
- data/grammars/source.ne.json +39 -42
- data/grammars/source.nemerle.json +58 -63
- data/grammars/source.nesc.json +9 -15
- data/grammars/source.netlinx.erb.json +13 -25
- data/grammars/source.netlinx.json +231 -292
- data/grammars/source.nextflow-groovy.json +1360 -0
- data/grammars/source.nextflow.json +74 -0
- data/grammars/source.nginx.json +274 -287
- data/grammars/source.nim.json +442 -483
- data/grammars/source.nim_filter.json +6 -26
- data/grammars/source.nimcfg.json +38 -51
- data/grammars/source.ninja.json +64 -70
- data/grammars/source.nit.json +60 -64
- data/grammars/source.nix.json +269 -273
- data/grammars/source.nmml.json +31 -37
- data/grammars/source.nsis.json +66 -72
- data/grammars/source.nu.json +129 -139
- data/grammars/source.nut.json +129 -133
- data/grammars/source.objc++.json +3 -10
- data/grammars/source.objc.json +303 -314
- data/grammars/source.objc.platform.json +145 -151
- data/grammars/source.ocaml.json +506 -514
- data/grammars/source.ocamllex.json +108 -115
- data/grammars/source.ocamlyacc.json +116 -123
- data/grammars/source.ooc.json +148 -155
- data/grammars/source.opa.json +39 -49
- data/grammars/source.opal.json +84 -89
- data/grammars/source.opalsysdefs.json +9 -13
- data/grammars/source.opencobol.json +22 -25
- data/grammars/source.opentype.json +148 -152
- data/grammars/source.ox.json +36 -44
- data/grammars/source.oz.json +31 -38
- data/grammars/source.p4.json +49 -59
- data/grammars/source.pan.json +273 -278
- data/grammars/source.papyrus.skyrim.json +705 -781
- data/grammars/source.parrot.pir.json +59 -65
- data/grammars/source.pascal.json +54 -61
- data/grammars/source.pawn.json +835 -849
- data/grammars/source.pcb.board.json +153 -158
- data/grammars/source.pcb.schematic.json +134 -138
- data/grammars/source.pcb.sexp.json +64 -74
- data/grammars/source.pep8.json +28 -32
- data/grammars/source.perl.6.json +83 -92
- data/grammars/source.perl.json +711 -737
- data/grammars/source.perl6fe.json +1204 -1218
- data/grammars/source.php.zephir.json +80 -89
- data/grammars/source.pic.json +137 -142
- data/grammars/source.pig_latin.json +76 -80
- data/grammars/source.pike.json +23 -36
- data/grammars/source.po.json +74 -84
- data/grammars/source.pogoscript.json +23 -29
- data/grammars/source.pony.json +98 -108
- data/grammars/source.postcss.json +370 -0
- data/grammars/source.postscript.json +88 -97
- data/grammars/source.pov-ray sdl.json +36 -42
- data/grammars/source.powershell.json +175 -197
- data/grammars/source.processing.json +236 -249
- data/grammars/source.prolog.eclipse.json +33 -38
- data/grammars/source.prolog.json +66 -72
- data/grammars/source.protobuf.json +88 -94
- data/grammars/source.puppet.json +144 -151
- data/grammars/source.purescript.json +268 -289
- data/grammars/source.pyjade.json +256 -281
- data/grammars/source.python.django.json +13 -18
- data/grammars/source.python.json +3319 -3367
- data/grammars/source.python.salt.json +3 -7
- data/grammars/source.qmake.json +83 -90
- data/grammars/source.qml.json +57 -78
- data/grammars/source.quoting.perl6fe.json +666 -669
- data/grammars/source.r.json +75 -84
- data/grammars/source.racket.json +17 -38
- data/grammars/source.rascal.json +77 -80
- data/grammars/source.reason.hover.type.json +1 -1
- data/grammars/source.reason.json +1025 -1080
- data/grammars/source.rebol.json +167 -177
- data/grammars/source.red.json +169 -177
- data/grammars/source.regexp.babel.json +74 -77
- data/grammars/source.regexp.extended.json +4 -5
- data/grammars/source.regexp.json +260 -264
- data/grammars/source.regexp.perl6fe.json +108 -111
- data/grammars/source.regexp.python.json +210 -215
- data/grammars/source.regexp.spin.json +63 -72
- data/grammars/source.renpy.json +617 -687
- data/grammars/source.rexx.json +25 -32
- data/grammars/source.ring.json +84 -114
- data/grammars/source.rpm-spec.json +392 -401
- data/grammars/source.ruby.gemfile.json +9 -12
- data/grammars/source.ruby.json +862 -952
- data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
- data/grammars/source.rust.json +223 -281
- data/grammars/source.sas.json +88 -105
- data/grammars/source.sass.json +100 -108
- data/grammars/source.sbt.json +16 -23
- data/grammars/source.scad.json +60 -67
- data/grammars/source.scala.json +215 -228
- data/grammars/source.scaml.json +120 -135
- data/grammars/source.scheme.json +119 -136
- data/grammars/source.scilab.json +40 -47
- data/grammars/source.scss.json +369 -403
- data/grammars/source.sdbl.json +14 -25
- data/grammars/source.shaderlab.json +24 -27
- data/grammars/source.shell.json +409 -440
- data/grammars/source.shen.json +75 -94
- data/grammars/source.smali.json +232 -293
- data/grammars/source.smalltalk.json +60 -75
- data/grammars/source.smt.json +67 -82
- data/grammars/source.solidity.json +35 -54
- data/grammars/source.sp.json +40 -45
- data/grammars/source.sparql.json +3 -8
- data/grammars/source.spin.json +277 -297
- data/grammars/source.sqf.json +34 -44
- data/grammars/source.sql.json +142 -156
- data/grammars/source.stan.json +201 -160
- data/grammars/source.stata.json +57 -68
- data/grammars/source.strings.json +26 -30
- data/grammars/source.stylus.json +558 -565
- data/grammars/source.supercollider.json +33 -40
- data/grammars/source.swift.json +999 -1077
- data/grammars/source.systemverilog.json +351 -365
- data/grammars/source.tcl.json +77 -94
- data/grammars/source.tea.json +61 -67
- data/grammars/source.terra.json +25 -32
- data/grammars/source.terraform.json +68 -88
- data/grammars/source.thrift.json +300 -306
- data/grammars/source.tl.json +112 -117
- data/grammars/source.tla.json +65 -69
- data/grammars/source.toc.json +21 -25
- data/grammars/source.toml.json +117 -122
- data/grammars/source.ts.json +2838 -2774
- data/grammars/source.tsx.json +180 -184
- data/grammars/source.turing.json +970 -974
- data/grammars/source.turtle.json +124 -140
- data/grammars/source.txl.json +23 -37
- data/grammars/source.ucfconstraints.json +16 -21
- data/grammars/source.ur.json +15 -27
- data/grammars/source.vala.json +221 -235
- data/grammars/source.varnish.vcl.json +117 -129
- data/grammars/source.vbnet.json +69 -106
- data/grammars/source.verilog.json +101 -107
- data/grammars/source.vhdl.json +437 -445
- data/grammars/source.viml.json +540 -550
- data/grammars/source.wavefront.mtl.json +274 -277
- data/grammars/source.wavefront.obj.json +781 -784
- data/grammars/source.wdl.json +66 -46
- data/grammars/source.webassembly.json +97 -102
- data/grammars/source.webidl.json +311 -326
- data/grammars/source.x10.json +28 -32
- data/grammars/source.x86asm.json +21 -26
- data/grammars/source.xc.json +164 -172
- data/grammars/source.xq.json +81 -92
- data/grammars/source.xtend.json +199 -208
- data/grammars/source.yaml-ext.json +118 -124
- data/grammars/source.yaml.json +155 -174
- data/grammars/source.yaml.salt.json +113 -116
- data/grammars/source.yang.json +10 -13
- data/grammars/source.yara.json +98 -0
- data/grammars/text.bibtex.json +95 -100
- data/grammars/text.cfml.basic.json +403 -404
- data/grammars/text.elixir.json +18 -23
- data/grammars/text.error-list.json +15 -16
- data/grammars/text.find-refs.json +487 -488
- data/grammars/text.gherkin.feature.json +45 -53
- data/grammars/text.haml.json +176 -189
- data/grammars/text.hamlc.json +82 -88
- data/grammars/text.html.abl.json +16 -21
- data/grammars/text.html.asciidoc.json +139 -153
- data/grammars/text.html.asdoc.json +145 -155
- data/grammars/text.html.asp.json +23 -28
- data/grammars/text.html.basic.json +323 -338
- data/grammars/text.html.cfm.json +316 -325
- data/grammars/text.html.creole.json +177 -189
- data/grammars/text.html.django.json +27 -33
- data/grammars/text.html.ecr.json +21 -25
- data/grammars/text.html.elixir.json +3 -9
- data/grammars/text.html.erb.json +81 -85
- data/grammars/text.html.erlang.yaws.json +24 -29
- data/grammars/text.html.factor.json +5 -11
- data/grammars/text.html.ftl.json +16 -25
- data/grammars/text.html.handlebars.json +579 -598
- data/grammars/text.html.javadoc.json +426 -0
- data/grammars/text.html.js.json +11 -17
- data/grammars/text.html.jsp.json +377 -384
- data/grammars/text.html.liquid.json +8 -18
- data/grammars/text.html.mako.json +257 -275
- data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
- data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
- data/grammars/text.html.mediawiki.json +318 -344
- data/grammars/text.html.php.blade.json +2134 -2140
- data/grammars/text.html.php.json +980 -1013
- data/grammars/text.html.slash.json +101 -107
- data/grammars/text.html.smarty.json +75 -83
- data/grammars/text.html.soy.json +250 -253
- data/grammars/text.html.ssp.json +18 -24
- data/grammars/text.html.tcl.json +17 -24
- data/grammars/text.html.twig.json +712 -718
- data/grammars/text.idl-idldoc.json +5 -9
- data/grammars/text.jade.json +213 -235
- data/grammars/text.junit-test-report.json +25 -28
- data/grammars/text.log.latex.json +44 -46
- data/grammars/text.marko.json +370 -401
- data/grammars/text.python.console.json +3 -7
- data/grammars/text.python.traceback.json +2 -5
- data/grammars/text.rdoc.json +15 -19
- data/grammars/text.restructuredtext.clean.json +8 -11
- data/grammars/text.restructuredtext.json +886 -873
- data/grammars/text.robot.json +26 -36
- data/grammars/text.roff.json +2852 -2915
- data/grammars/text.runoff.json +56 -69
- data/grammars/text.sfd.json +151 -155
- data/grammars/text.shell-session.json +5 -8
- data/grammars/text.slim.json +184 -210
- data/grammars/text.srt.json +54 -57
- data/grammars/text.tex.json +98 -105
- data/grammars/text.tex.latex.beamer.json +14 -20
- data/grammars/text.tex.latex.haskell.json +883 -782
- data/grammars/text.tex.latex.json +281 -291
- data/grammars/text.tex.latex.memoir.json +39 -46
- data/grammars/text.tex.latex.rd.json +32 -38
- data/grammars/text.xml.ant.json +62 -69
- data/grammars/text.xml.flex-config.json +1009 -1013
- data/grammars/text.xml.genshi.json +10 -16
- data/grammars/text.xml.json +117 -130
- data/grammars/text.xml.pom.json +235 -240
- data/grammars/text.xml.xsl.json +31 -37
- data/grammars/text.zone_file.json +24 -29
- data/lib/linguist/blob.rb +10 -1
- data/lib/linguist/blob_helper.rb +4 -1
- data/lib/linguist/file_blob.rb +5 -0
- data/lib/linguist/generated.rb +16 -0
- data/lib/linguist/heuristics.rb +23 -11
- data/lib/linguist/language.rb +3 -6
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +74 -12
- data/lib/linguist/lazy_blob.rb +15 -1
- data/lib/linguist/linguist.bundle +0 -0
- data/lib/linguist/samples.json +1666 -3381
- data/lib/linguist/shebang.rb +2 -0
- data/lib/linguist/strategy/modeline.rb +2 -0
- data/lib/linguist/vendor.yml +5 -6
- data/lib/linguist/version.rb +1 -1
- metadata +12 -11
- data/grammars/source.elm.json +0 -381
- data/grammars/source.nant-build.json +0 -86
- data/grammars/source.octave.json +0 -451
- data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
- data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
- data/grammars/text.html.vue.json +0 -936
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"fileTypes": [
|
|
3
|
-
"v",
|
|
4
|
-
"vh"
|
|
5
|
-
],
|
|
6
|
-
"keyEquivalent": "^~V",
|
|
7
2
|
"name": "Verilog",
|
|
3
|
+
"scopeName": "source.verilog",
|
|
8
4
|
"patterns": [
|
|
9
5
|
{
|
|
10
6
|
"include": "#comments"
|
|
@@ -30,39 +26,41 @@
|
|
|
30
26
|
"patterns": [
|
|
31
27
|
{
|
|
32
28
|
"begin": "(^[ \\t]+)?(?=//)",
|
|
33
|
-
"beginCaptures": {
|
|
34
|
-
"1": {
|
|
35
|
-
"name": "punctuation.whitespace.comment.leading.verilog"
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
29
|
"end": "(?!\\G)",
|
|
39
30
|
"patterns": [
|
|
40
31
|
{
|
|
32
|
+
"name": "comment.line.double-slash.verilog",
|
|
41
33
|
"begin": "//",
|
|
34
|
+
"end": "\\n",
|
|
42
35
|
"beginCaptures": {
|
|
43
36
|
"0": {
|
|
44
37
|
"name": "punctuation.definition.comment.verilog"
|
|
45
38
|
}
|
|
46
|
-
}
|
|
47
|
-
"end": "\\n",
|
|
48
|
-
"name": "comment.line.double-slash.verilog"
|
|
39
|
+
}
|
|
49
40
|
}
|
|
50
|
-
]
|
|
41
|
+
],
|
|
42
|
+
"beginCaptures": {
|
|
43
|
+
"1": {
|
|
44
|
+
"name": "punctuation.whitespace.comment.leading.verilog"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
51
47
|
},
|
|
52
48
|
{
|
|
49
|
+
"name": "comment.block.c-style.verilog",
|
|
53
50
|
"begin": "/\\*",
|
|
54
|
-
"end": "\\*/"
|
|
55
|
-
"name": "comment.block.c-style.verilog"
|
|
51
|
+
"end": "\\*/"
|
|
56
52
|
}
|
|
57
53
|
]
|
|
58
54
|
},
|
|
59
55
|
"constants": {
|
|
60
56
|
"patterns": [
|
|
61
57
|
{
|
|
62
|
-
"
|
|
63
|
-
"
|
|
58
|
+
"name": "constant.numeric.sized_integer.verilog",
|
|
59
|
+
"match": "\\b[0-9]+'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b"
|
|
64
60
|
},
|
|
65
61
|
{
|
|
62
|
+
"name": "meta.block.numeric.range.verilog",
|
|
63
|
+
"match": "\\b(\\d+)(:)(\\d+)\\b",
|
|
66
64
|
"captures": {
|
|
67
65
|
"1": {
|
|
68
66
|
"name": "constant.numeric.integer.verilog"
|
|
@@ -73,25 +71,23 @@
|
|
|
73
71
|
"3": {
|
|
74
72
|
"name": "constant.numeric.integer.verilog"
|
|
75
73
|
}
|
|
76
|
-
}
|
|
77
|
-
"match": "\\b(\\d+)(:)(\\d+)\\b",
|
|
78
|
-
"name": "meta.block.numeric.range.verilog"
|
|
74
|
+
}
|
|
79
75
|
},
|
|
80
76
|
{
|
|
81
|
-
"
|
|
82
|
-
"
|
|
77
|
+
"name": "constant.numeric.integer.verilog",
|
|
78
|
+
"match": "\\b\\d+(?i:e\\d+)?\\b"
|
|
83
79
|
},
|
|
84
80
|
{
|
|
85
|
-
"
|
|
86
|
-
"
|
|
81
|
+
"name": "constant.numeric.real.verilog",
|
|
82
|
+
"match": "\\b\\d+\\.\\d+(?i:e\\d+)?\\b"
|
|
87
83
|
},
|
|
88
84
|
{
|
|
89
|
-
"
|
|
90
|
-
"
|
|
85
|
+
"name": "constant.numeric.delay.verilog",
|
|
86
|
+
"match": "#\\d+"
|
|
91
87
|
},
|
|
92
88
|
{
|
|
93
|
-
"
|
|
94
|
-
"
|
|
89
|
+
"name": "constant.numeric.logic.verilog",
|
|
90
|
+
"match": "\\b[01xXzZ]+\\b"
|
|
95
91
|
}
|
|
96
92
|
]
|
|
97
93
|
},
|
|
@@ -101,22 +97,9 @@
|
|
|
101
97
|
"include": "#keywords"
|
|
102
98
|
},
|
|
103
99
|
{
|
|
104
|
-
"begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)",
|
|
105
|
-
"beginCaptures": {
|
|
106
|
-
"1": {
|
|
107
|
-
"name": "entity.name.tag.module.reference.verilog"
|
|
108
|
-
},
|
|
109
|
-
"2": {
|
|
110
|
-
"name": "entity.name.tag.module.identifier.verilog"
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
"end": ";",
|
|
114
|
-
"endCaptures": {
|
|
115
|
-
"0": {
|
|
116
|
-
"name": "punctuation.terminator.expression.verilog"
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
100
|
"name": "meta.block.instantiation.parameterless.verilog",
|
|
101
|
+
"begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?\u003c!begin|if)\\s*(?=\\(|$)",
|
|
102
|
+
"end": ";",
|
|
120
103
|
"patterns": [
|
|
121
104
|
{
|
|
122
105
|
"include": "#comments"
|
|
@@ -127,93 +110,93 @@
|
|
|
127
110
|
{
|
|
128
111
|
"include": "#strings"
|
|
129
112
|
}
|
|
130
|
-
]
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()",
|
|
113
|
+
],
|
|
134
114
|
"beginCaptures": {
|
|
135
115
|
"1": {
|
|
136
116
|
"name": "entity.name.tag.module.reference.verilog"
|
|
117
|
+
},
|
|
118
|
+
"2": {
|
|
119
|
+
"name": "entity.name.tag.module.identifier.verilog"
|
|
137
120
|
}
|
|
138
121
|
},
|
|
139
|
-
"end": ";",
|
|
140
122
|
"endCaptures": {
|
|
141
123
|
"0": {
|
|
142
124
|
"name": "punctuation.terminator.expression.verilog"
|
|
143
125
|
}
|
|
144
|
-
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
145
129
|
"name": "meta.block.instantiation.with.parameters.verilog",
|
|
130
|
+
"begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()",
|
|
131
|
+
"end": ";",
|
|
146
132
|
"patterns": [
|
|
147
133
|
{
|
|
148
134
|
"include": "#parenthetical_list"
|
|
149
135
|
},
|
|
150
136
|
{
|
|
151
|
-
"
|
|
152
|
-
"
|
|
137
|
+
"name": "entity.name.tag.module.identifier.verilog",
|
|
138
|
+
"match": "[a-zA-Z][a-zA-Z0-9_]*"
|
|
153
139
|
}
|
|
154
|
-
]
|
|
140
|
+
],
|
|
141
|
+
"beginCaptures": {
|
|
142
|
+
"1": {
|
|
143
|
+
"name": "entity.name.tag.module.reference.verilog"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"endCaptures": {
|
|
147
|
+
"0": {
|
|
148
|
+
"name": "punctuation.terminator.expression.verilog"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
155
151
|
}
|
|
156
152
|
]
|
|
157
153
|
},
|
|
158
154
|
"keywords": {
|
|
159
155
|
"patterns": [
|
|
160
156
|
{
|
|
161
|
-
"
|
|
162
|
-
"
|
|
157
|
+
"name": "keyword.other.verilog",
|
|
158
|
+
"match": "\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case(xz)?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b"
|
|
163
159
|
},
|
|
164
160
|
{
|
|
165
|
-
"
|
|
166
|
-
"
|
|
161
|
+
"name": "keyword.other.compiler.directive.verilog",
|
|
162
|
+
"match": "^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b"
|
|
167
163
|
},
|
|
168
164
|
{
|
|
169
|
-
"
|
|
170
|
-
"
|
|
165
|
+
"name": "support.function.system.console.tasks.verilog",
|
|
166
|
+
"match": "\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b"
|
|
171
167
|
},
|
|
172
168
|
{
|
|
173
|
-
"
|
|
174
|
-
"
|
|
169
|
+
"name": "support.function.system.random_number.tasks.verilog",
|
|
170
|
+
"match": "\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b"
|
|
175
171
|
},
|
|
176
172
|
{
|
|
177
|
-
"
|
|
178
|
-
"
|
|
173
|
+
"name": "support.function.system.pld_modeling.tasks.verilog",
|
|
174
|
+
"match": "\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b"
|
|
179
175
|
},
|
|
180
176
|
{
|
|
181
|
-
"
|
|
182
|
-
"
|
|
177
|
+
"name": "support.function.system.stochastic.tasks.verilog",
|
|
178
|
+
"match": "\\$(q_(initialize|add|remove|full|exam))\\b"
|
|
183
179
|
},
|
|
184
180
|
{
|
|
185
|
-
"
|
|
186
|
-
"
|
|
181
|
+
"name": "support.function.system.timing.tasks.verilog",
|
|
182
|
+
"match": "\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b"
|
|
187
183
|
},
|
|
188
184
|
{
|
|
189
|
-
"
|
|
190
|
-
"
|
|
185
|
+
"name": "support.function.system.vcd.tasks.verilog",
|
|
186
|
+
"match": "\\$(dump(file|vars|off|on|all|limit|flush))\\b"
|
|
191
187
|
},
|
|
192
188
|
{
|
|
193
|
-
"
|
|
194
|
-
"
|
|
189
|
+
"name": "support.function.non-standard.tasks.verilog",
|
|
190
|
+
"match": "\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)"
|
|
195
191
|
}
|
|
196
192
|
]
|
|
197
193
|
},
|
|
198
194
|
"module_pattern": {
|
|
199
195
|
"patterns": [
|
|
200
196
|
{
|
|
197
|
+
"name": "meta.block.module.verilog",
|
|
201
198
|
"begin": "\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)",
|
|
202
|
-
"beginCaptures": {
|
|
203
|
-
"1": {
|
|
204
|
-
"name": "storage.type.module.verilog"
|
|
205
|
-
},
|
|
206
|
-
"2": {
|
|
207
|
-
"name": "entity.name.type.module.verilog"
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
199
|
"end": "\\bendmodule\\b",
|
|
211
|
-
"endCaptures": {
|
|
212
|
-
"0": {
|
|
213
|
-
"name": "storage.type.module.verilog"
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
"name": "meta.block.module.verilog",
|
|
217
200
|
"patterns": [
|
|
218
201
|
{
|
|
219
202
|
"include": "#comments"
|
|
@@ -233,34 +216,37 @@
|
|
|
233
216
|
{
|
|
234
217
|
"include": "#operators"
|
|
235
218
|
}
|
|
236
|
-
]
|
|
219
|
+
],
|
|
220
|
+
"beginCaptures": {
|
|
221
|
+
"1": {
|
|
222
|
+
"name": "storage.type.module.verilog"
|
|
223
|
+
},
|
|
224
|
+
"2": {
|
|
225
|
+
"name": "entity.name.type.module.verilog"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"endCaptures": {
|
|
229
|
+
"0": {
|
|
230
|
+
"name": "storage.type.module.verilog"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
237
233
|
}
|
|
238
234
|
]
|
|
239
235
|
},
|
|
240
236
|
"operators": {
|
|
241
237
|
"patterns": [
|
|
242
238
|
{
|
|
243
|
-
"
|
|
244
|
-
"
|
|
239
|
+
"name": "keyword.operator.verilog",
|
|
240
|
+
"match": "\\+|-|\\*|/|%|(\u003c|\u003e)=?|(!|=)?==?|!|\u0026\u0026?|\\|\\|?|\\^?~|~\\^?"
|
|
245
241
|
}
|
|
246
242
|
]
|
|
247
243
|
},
|
|
248
244
|
"parenthetical_list": {
|
|
249
245
|
"patterns": [
|
|
250
246
|
{
|
|
247
|
+
"name": "meta.block.parenthetical_list.verilog",
|
|
251
248
|
"begin": "\\(",
|
|
252
|
-
"beginCaptures": {
|
|
253
|
-
"0": {
|
|
254
|
-
"name": "punctuation.section.list.verilog"
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
249
|
"end": "\\)",
|
|
258
|
-
"endCaptures": {
|
|
259
|
-
"0": {
|
|
260
|
-
"name": "punctuation.section.list.verilog"
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
"name": "meta.block.parenthetical_list.verilog",
|
|
264
250
|
"patterns": [
|
|
265
251
|
{
|
|
266
252
|
"include": "#parenthetical_list"
|
|
@@ -277,26 +263,34 @@
|
|
|
277
263
|
{
|
|
278
264
|
"include": "#strings"
|
|
279
265
|
}
|
|
280
|
-
]
|
|
266
|
+
],
|
|
267
|
+
"beginCaptures": {
|
|
268
|
+
"0": {
|
|
269
|
+
"name": "punctuation.section.list.verilog"
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"endCaptures": {
|
|
273
|
+
"0": {
|
|
274
|
+
"name": "punctuation.section.list.verilog"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
281
277
|
}
|
|
282
278
|
]
|
|
283
279
|
},
|
|
284
280
|
"strings": {
|
|
285
281
|
"patterns": [
|
|
286
282
|
{
|
|
283
|
+
"name": "string.quoted.double.verilog",
|
|
287
284
|
"begin": "\"",
|
|
288
285
|
"end": "\"",
|
|
289
|
-
"name": "string.quoted.double.verilog",
|
|
290
286
|
"patterns": [
|
|
291
287
|
{
|
|
292
|
-
"
|
|
293
|
-
"
|
|
288
|
+
"name": "constant.character.escape.verilog",
|
|
289
|
+
"match": "\\\\."
|
|
294
290
|
}
|
|
295
291
|
]
|
|
296
292
|
}
|
|
297
293
|
]
|
|
298
294
|
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
"uuid": "7F4396B3-A33E-44F0-8502-98CA6C25971F"
|
|
302
|
-
}
|
|
295
|
+
}
|
|
296
|
+
}
|
data/grammars/source.vhdl.json
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"comment": "VHDL Bundle by Brian Padalino (ocnqnyvab@tznvy.pbz)",
|
|
3
|
-
"fileTypes": [
|
|
4
|
-
"vhd",
|
|
5
|
-
"vhdl",
|
|
6
|
-
"vho"
|
|
7
|
-
],
|
|
8
|
-
"keyEquivalent": "^~V",
|
|
9
2
|
"name": "VHDL",
|
|
3
|
+
"scopeName": "source.vhdl",
|
|
10
4
|
"patterns": [
|
|
11
5
|
{
|
|
12
6
|
"include": "#block_processing"
|
|
@@ -19,43 +13,9 @@
|
|
|
19
13
|
"architecture_pattern": {
|
|
20
14
|
"patterns": [
|
|
21
15
|
{
|
|
16
|
+
"name": "meta.block.architecture",
|
|
22
17
|
"begin": "(?x)\n\n\t\t\t\t\t\t# The word architecture $1\n\t\t\t\t\t\t\\b((?i:architecture))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Followed up by a valid $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\t\t\t\t\t\t# The word of $5\n\t\t\t\t\t\t((?i:of))\\s+\n\n\t\t\t\t\t\t# Followed by a valid $7 or invalid identifier $8\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n\t\t\t\t\t",
|
|
23
|
-
"beginCaptures": {
|
|
24
|
-
"1": {
|
|
25
|
-
"name": "storage.type.architecture.vhdl"
|
|
26
|
-
},
|
|
27
|
-
"3": {
|
|
28
|
-
"name": "entity.name.type.architecture.begin.vhdl"
|
|
29
|
-
},
|
|
30
|
-
"4": {
|
|
31
|
-
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
32
|
-
},
|
|
33
|
-
"5": {
|
|
34
|
-
"name": "keyword.control.of.vhdl"
|
|
35
|
-
},
|
|
36
|
-
"7": {
|
|
37
|
-
"name": "entity.name.type.entity.reference.vhdl"
|
|
38
|
-
},
|
|
39
|
-
"8": {
|
|
40
|
-
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
18
|
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# Optional word architecture $3\n\t\t\t\t\t\t(\\s+((?i:architecture)))?\n\n\t\t\t\t\t\t# Optional same identifier $6 or illegal identifier $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# This will cause the previous to capture until just before the ; or $\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
44
|
-
"endCaptures": {
|
|
45
|
-
"1": {
|
|
46
|
-
"name": "keyword.control.end.vhdl"
|
|
47
|
-
},
|
|
48
|
-
"3": {
|
|
49
|
-
"name": "storage.type.architecture.vhdl"
|
|
50
|
-
},
|
|
51
|
-
"6": {
|
|
52
|
-
"name": "entity.name.type.architecture.end.vhdl"
|
|
53
|
-
},
|
|
54
|
-
"7": {
|
|
55
|
-
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"name": "meta.block.architecture",
|
|
59
19
|
"patterns": [
|
|
60
20
|
{
|
|
61
21
|
"include": "#function_definition_pattern"
|
|
@@ -90,34 +50,68 @@
|
|
|
90
50
|
{
|
|
91
51
|
"include": "#cleanup"
|
|
92
52
|
}
|
|
93
|
-
]
|
|
53
|
+
],
|
|
54
|
+
"beginCaptures": {
|
|
55
|
+
"1": {
|
|
56
|
+
"name": "storage.type.architecture.vhdl"
|
|
57
|
+
},
|
|
58
|
+
"3": {
|
|
59
|
+
"name": "entity.name.type.architecture.begin.vhdl"
|
|
60
|
+
},
|
|
61
|
+
"4": {
|
|
62
|
+
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
63
|
+
},
|
|
64
|
+
"5": {
|
|
65
|
+
"name": "keyword.control.of.vhdl"
|
|
66
|
+
},
|
|
67
|
+
"7": {
|
|
68
|
+
"name": "entity.name.type.entity.reference.vhdl"
|
|
69
|
+
},
|
|
70
|
+
"8": {
|
|
71
|
+
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"endCaptures": {
|
|
75
|
+
"1": {
|
|
76
|
+
"name": "keyword.control.end.vhdl"
|
|
77
|
+
},
|
|
78
|
+
"3": {
|
|
79
|
+
"name": "storage.type.architecture.vhdl"
|
|
80
|
+
},
|
|
81
|
+
"6": {
|
|
82
|
+
"name": "entity.name.type.architecture.end.vhdl"
|
|
83
|
+
},
|
|
84
|
+
"7": {
|
|
85
|
+
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
94
88
|
}
|
|
95
89
|
]
|
|
96
90
|
},
|
|
97
91
|
"attribute_list": {
|
|
98
92
|
"patterns": [
|
|
99
93
|
{
|
|
94
|
+
"name": "meta.block.attribute_list",
|
|
100
95
|
"begin": "'\\(",
|
|
96
|
+
"end": "\\)",
|
|
97
|
+
"patterns": [
|
|
98
|
+
{
|
|
99
|
+
"include": "#parenthetical_list"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"include": "#cleanup"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
101
105
|
"beginCaptures": {
|
|
102
106
|
"0": {
|
|
103
107
|
"name": "punctuation.definition.attribute_list.begin.vhdl"
|
|
104
108
|
}
|
|
105
109
|
},
|
|
106
|
-
"end": "\\)",
|
|
107
110
|
"endCaptures": {
|
|
108
111
|
"0": {
|
|
109
112
|
"name": "punctuation.definition.attribute_list.end.vhdl"
|
|
110
113
|
}
|
|
111
|
-
}
|
|
112
|
-
"name": "meta.block.attribute_list",
|
|
113
|
-
"patterns": [
|
|
114
|
-
{
|
|
115
|
-
"include": "#parenthetical_list"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"include": "#cleanup"
|
|
119
|
-
}
|
|
120
|
-
]
|
|
114
|
+
}
|
|
121
115
|
}
|
|
122
116
|
]
|
|
123
117
|
},
|
|
@@ -140,7 +134,17 @@
|
|
|
140
134
|
"case_pattern": {
|
|
141
135
|
"patterns": [
|
|
142
136
|
{
|
|
137
|
+
"name": "meta.block.case.vhdl",
|
|
143
138
|
"begin": "(?x)\n\t\t\t\t\t\t# Beginning of line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Optional identifier ... $3 or invalid identifier $4\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\s*:\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word case $5\n\t\t\t\t\t\t\\b((?i:case))\\b\n\t\t\t\t\t",
|
|
139
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
140
|
+
"patterns": [
|
|
141
|
+
{
|
|
142
|
+
"include": "#control_patterns"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"include": "#cleanup"
|
|
146
|
+
}
|
|
147
|
+
],
|
|
144
148
|
"beginCaptures": {
|
|
145
149
|
"3": {
|
|
146
150
|
"name": "entity.name.tag.case.begin.vhdl"
|
|
@@ -152,7 +156,6 @@
|
|
|
152
156
|
"name": "keyword.control.case.vhdl"
|
|
153
157
|
}
|
|
154
158
|
},
|
|
155
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
156
159
|
"endCaptures": {
|
|
157
160
|
"1": {
|
|
158
161
|
"name": "keyword.control.end.vhdl"
|
|
@@ -169,16 +172,7 @@
|
|
|
169
172
|
"9": {
|
|
170
173
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
171
174
|
}
|
|
172
|
-
}
|
|
173
|
-
"name": "meta.block.case.vhdl",
|
|
174
|
-
"patterns": [
|
|
175
|
-
{
|
|
176
|
-
"include": "#control_patterns"
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
"include": "#cleanup"
|
|
180
|
-
}
|
|
181
|
-
]
|
|
175
|
+
}
|
|
182
176
|
}
|
|
183
177
|
]
|
|
184
178
|
},
|
|
@@ -205,31 +199,41 @@
|
|
|
205
199
|
"patterns": [
|
|
206
200
|
{
|
|
207
201
|
"begin": "(^[ \\t]+)?(?=--)",
|
|
208
|
-
"beginCaptures": {
|
|
209
|
-
"1": {
|
|
210
|
-
"name": "punctuation.whitespace.comment.leading.vhdl"
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
202
|
"end": "(?!\\G)",
|
|
214
203
|
"patterns": [
|
|
215
204
|
{
|
|
205
|
+
"name": "comment.line.double-dash.vhdl",
|
|
216
206
|
"begin": "--",
|
|
207
|
+
"end": "\\n",
|
|
217
208
|
"beginCaptures": {
|
|
218
209
|
"0": {
|
|
219
210
|
"name": "punctuation.definition.comment.vhdl"
|
|
220
211
|
}
|
|
221
|
-
}
|
|
222
|
-
"end": "\\n",
|
|
223
|
-
"name": "comment.line.double-dash.vhdl"
|
|
212
|
+
}
|
|
224
213
|
}
|
|
225
|
-
]
|
|
214
|
+
],
|
|
215
|
+
"beginCaptures": {
|
|
216
|
+
"1": {
|
|
217
|
+
"name": "punctuation.whitespace.comment.leading.vhdl"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
226
220
|
}
|
|
227
221
|
]
|
|
228
222
|
},
|
|
229
223
|
"component_instantiation_pattern": {
|
|
230
224
|
"patterns": [
|
|
231
225
|
{
|
|
226
|
+
"name": "meta.block.component_instantiation.vhdl",
|
|
232
227
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Match a valid identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Another valid identifier $3\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\t\t\t\t\t\t# Make sure we are just the other word, or the beginning of\n\t\t\t\t\t\t# a generic or port mapping\n\t\t\t\t\t\t(?=\\s*($|generic|port))\n\t\t\t\t\t",
|
|
228
|
+
"end": ";",
|
|
229
|
+
"patterns": [
|
|
230
|
+
{
|
|
231
|
+
"include": "#parenthetical_list"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"include": "#cleanup"
|
|
235
|
+
}
|
|
236
|
+
],
|
|
233
237
|
"beginCaptures": {
|
|
234
238
|
"1": {
|
|
235
239
|
"name": "entity.name.section.component_instantiation.vhdl"
|
|
@@ -241,28 +245,31 @@
|
|
|
241
245
|
"name": "entity.name.tag.component.reference.vhdl"
|
|
242
246
|
}
|
|
243
247
|
},
|
|
244
|
-
"end": ";",
|
|
245
248
|
"endCaptures": {
|
|
246
249
|
"0": {
|
|
247
250
|
"name": "punctuation.terminator.statement.vhdl"
|
|
248
251
|
}
|
|
249
|
-
}
|
|
250
|
-
"name": "meta.block.component_instantiation.vhdl",
|
|
251
|
-
"patterns": [
|
|
252
|
-
{
|
|
253
|
-
"include": "#parenthetical_list"
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
"include": "#cleanup"
|
|
257
|
-
}
|
|
258
|
-
]
|
|
252
|
+
}
|
|
259
253
|
}
|
|
260
254
|
]
|
|
261
255
|
},
|
|
262
256
|
"component_pattern": {
|
|
263
257
|
"patterns": [
|
|
264
258
|
{
|
|
259
|
+
"name": "meta.block.component.vhdl",
|
|
265
260
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word component $1\n\t\t\t\t\t\t\\b((?i:component))\\s+\n\n\t\t\t\t\t\t# A valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\t\t\t\t\t\t# Optional word is $6\n\t\t\t\t\t\t(\\b((?i:is\\b)))?\n\t\t\t\t\t",
|
|
261
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t",
|
|
262
|
+
"patterns": [
|
|
263
|
+
{
|
|
264
|
+
"include": "#generic_list_pattern"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"include": "#port_list_pattern"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"include": "#comments"
|
|
271
|
+
}
|
|
272
|
+
],
|
|
266
273
|
"beginCaptures": {
|
|
267
274
|
"1": {
|
|
268
275
|
"name": "storage.type.component.vhdl"
|
|
@@ -277,7 +284,6 @@
|
|
|
277
284
|
"name": "keyword.control.is.vhdl"
|
|
278
285
|
}
|
|
279
286
|
},
|
|
280
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t",
|
|
281
287
|
"endCaptures": {
|
|
282
288
|
"1": {
|
|
283
289
|
"name": "keyword.control.end.vhdl"
|
|
@@ -294,60 +300,48 @@
|
|
|
294
300
|
"8": {
|
|
295
301
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
296
302
|
}
|
|
297
|
-
}
|
|
298
|
-
"name": "meta.block.component.vhdl",
|
|
299
|
-
"patterns": [
|
|
300
|
-
{
|
|
301
|
-
"include": "#generic_list_pattern"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"include": "#port_list_pattern"
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
"include": "#comments"
|
|
308
|
-
}
|
|
309
|
-
]
|
|
303
|
+
}
|
|
310
304
|
}
|
|
311
305
|
]
|
|
312
306
|
},
|
|
313
307
|
"constants_numeric": {
|
|
314
308
|
"patterns": [
|
|
315
309
|
{
|
|
316
|
-
"
|
|
317
|
-
"
|
|
310
|
+
"name": "constant.numeric.floating_point.vhdl",
|
|
311
|
+
"match": "\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b"
|
|
318
312
|
},
|
|
319
313
|
{
|
|
320
|
-
"
|
|
321
|
-
"
|
|
314
|
+
"name": "constant.numeric.base_pound_number_pound.vhdl",
|
|
315
|
+
"match": "\\b\\d+#[0-9A-Fa-f_]+#"
|
|
322
316
|
},
|
|
323
317
|
{
|
|
324
|
-
"
|
|
325
|
-
"
|
|
318
|
+
"name": "constant.numeric.integer.vhdl",
|
|
319
|
+
"match": "\\b[\\d_]+([eE][\\d_]+)?\\b"
|
|
326
320
|
},
|
|
327
321
|
{
|
|
328
|
-
"
|
|
329
|
-
"
|
|
322
|
+
"name": "constant.numeric.quoted.double.string.hex.vhdl",
|
|
323
|
+
"match": "[xX]\"[0-9a-fA-F_uUxXzZwWlLhH\\-]+\""
|
|
330
324
|
},
|
|
331
325
|
{
|
|
332
|
-
"
|
|
333
|
-
"
|
|
326
|
+
"name": "constant.numeric.quoted.double.string.octal.vhdl",
|
|
327
|
+
"match": "[oO]\"[0-7_uUxXzZwWlLhH\\-]+\""
|
|
334
328
|
},
|
|
335
329
|
{
|
|
336
|
-
"
|
|
337
|
-
"
|
|
330
|
+
"name": "constant.numeric.quoted.double.string.binary.vhdl",
|
|
331
|
+
"match": "[bB]?\"[01_uUxXzZwWlLhH\\-]+\""
|
|
338
332
|
},
|
|
339
333
|
{
|
|
334
|
+
"name": "constant.numeric.quoted.double.string.illegal.vhdl",
|
|
335
|
+
"match": "([bBoOxX]\".+?\")",
|
|
340
336
|
"captures": {
|
|
341
337
|
"1": {
|
|
342
338
|
"name": "invalid.illegal.quoted.double.string.vhdl"
|
|
343
339
|
}
|
|
344
|
-
}
|
|
345
|
-
"match": "([bBoOxX]\".+?\")",
|
|
346
|
-
"name": "constant.numeric.quoted.double.string.illegal.vhdl"
|
|
340
|
+
}
|
|
347
341
|
},
|
|
348
342
|
{
|
|
349
|
-
"
|
|
350
|
-
"
|
|
343
|
+
"name": "constant.numeric.quoted.single.std_logic",
|
|
344
|
+
"match": "'[01uUxXzZwWlLhH\\-]'"
|
|
351
345
|
}
|
|
352
346
|
]
|
|
353
347
|
},
|
|
@@ -370,7 +364,17 @@
|
|
|
370
364
|
"entity_instantiation_pattern": {
|
|
371
365
|
"patterns": [
|
|
372
366
|
{
|
|
367
|
+
"name": "meta.block.entity_instantiation.vhdl",
|
|
373
368
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Component identifier or illegal identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Optional word use $4\n\t\t\t\t\t\t(((?i:use))\\s+)?\n\n\t\t\t\t\t\t# Required word entity $5\n\t\t\t\t\t\t((?i:entity))\\s+\n\n\t\t\t\t\t\t# Optional library unit identifier $8 for invalid identifier $9 followed by a dot $10\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t\t(\\.)\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Entity name reference $12 or illegal identifier $13\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t# Check to see if we are being followed by either open paren, end of line, or port or generic words\n\t\t\t\t\t\t(?=\\s*(\\(|$|(?i:port|generic)))\n\n\t\t\t\t\t\t# Optional architecture elaboration\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Open paren $16\n\t\t\t\t\t\t\t\\s*(\\()\\s*\n\n\t\t\t\t\t\t\t# Arch identifier $18 or invalid identifier $19\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\t\t\t\t\t\t\t# Close paren $21\n\t\t\t\t\t\t\t\\s*(\\))\n\t\t\t\t\t\t)?\n\t\t\t\t\t",
|
|
369
|
+
"end": ";",
|
|
370
|
+
"patterns": [
|
|
371
|
+
{
|
|
372
|
+
"include": "#parenthetical_list"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"include": "#cleanup"
|
|
376
|
+
}
|
|
377
|
+
],
|
|
374
378
|
"beginCaptures": {
|
|
375
379
|
"1": {
|
|
376
380
|
"name": "entity.name.section.entity_instantiation.vhdl"
|
|
@@ -412,28 +416,34 @@
|
|
|
412
416
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
413
417
|
}
|
|
414
418
|
},
|
|
415
|
-
"end": ";",
|
|
416
419
|
"endCaptures": {
|
|
417
420
|
"0": {
|
|
418
421
|
"name": "punctuation.terminator.statement.vhdl"
|
|
419
422
|
}
|
|
420
|
-
}
|
|
421
|
-
"name": "meta.block.entity_instantiation.vhdl",
|
|
422
|
-
"patterns": [
|
|
423
|
-
{
|
|
424
|
-
"include": "#parenthetical_list"
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
"include": "#cleanup"
|
|
428
|
-
}
|
|
429
|
-
]
|
|
423
|
+
}
|
|
430
424
|
}
|
|
431
425
|
]
|
|
432
426
|
},
|
|
433
427
|
"entity_pattern": {
|
|
434
428
|
"patterns": [
|
|
435
429
|
{
|
|
430
|
+
"name": "meta.block.entity.vhdl",
|
|
436
431
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word entity $1\n\t\t\t\t\t\t((?i:entity\\b))\\s+\n\n\t\t\t\t\t\t# The identifier $3 or an invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n\t\t\t\t\t",
|
|
432
|
+
"end": "(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
433
|
+
"patterns": [
|
|
434
|
+
{
|
|
435
|
+
"include": "#comments"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"include": "#generic_list_pattern"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"include": "#port_list_pattern"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"include": "#cleanup"
|
|
445
|
+
}
|
|
446
|
+
],
|
|
437
447
|
"beginCaptures": {
|
|
438
448
|
"1": {
|
|
439
449
|
"name": "storage.type.entity.vhdl"
|
|
@@ -445,7 +455,6 @@
|
|
|
445
455
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
446
456
|
}
|
|
447
457
|
},
|
|
448
|
-
"end": "(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
449
458
|
"endCaptures": {
|
|
450
459
|
"1": {
|
|
451
460
|
"name": "keyword.control.end.vhdl"
|
|
@@ -459,29 +468,36 @@
|
|
|
459
468
|
"7": {
|
|
460
469
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
461
470
|
}
|
|
462
|
-
}
|
|
463
|
-
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
]
|
|
474
|
+
},
|
|
475
|
+
"for_pattern": {
|
|
476
|
+
"patterns": [
|
|
477
|
+
{
|
|
478
|
+
"name": "meta.block.for.vhdl",
|
|
479
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t",
|
|
480
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
464
481
|
"patterns": [
|
|
465
482
|
{
|
|
466
|
-
"include": "#
|
|
483
|
+
"include": "#control_patterns"
|
|
467
484
|
},
|
|
468
485
|
{
|
|
469
|
-
"include": "#
|
|
486
|
+
"include": "#entity_instantiation_pattern"
|
|
470
487
|
},
|
|
471
488
|
{
|
|
472
|
-
"include": "#
|
|
489
|
+
"include": "#component_pattern"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"include": "#component_instantiation_pattern"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"include": "#process_pattern"
|
|
473
496
|
},
|
|
474
497
|
{
|
|
475
498
|
"include": "#cleanup"
|
|
476
499
|
}
|
|
477
|
-
]
|
|
478
|
-
}
|
|
479
|
-
]
|
|
480
|
-
},
|
|
481
|
-
"for_pattern": {
|
|
482
|
-
"patterns": [
|
|
483
|
-
{
|
|
484
|
-
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t",
|
|
500
|
+
],
|
|
485
501
|
"beginCaptures": {
|
|
486
502
|
"2": {
|
|
487
503
|
"name": "entity.name.tag.for.generate.begin.vhdl"
|
|
@@ -493,7 +509,6 @@
|
|
|
493
509
|
"name": "keyword.control.for.vhdl"
|
|
494
510
|
}
|
|
495
511
|
},
|
|
496
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
497
512
|
"endCaptures": {
|
|
498
513
|
"1": {
|
|
499
514
|
"name": "keyword.control.end.vhdl"
|
|
@@ -510,35 +525,33 @@
|
|
|
510
525
|
"8": {
|
|
511
526
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
512
527
|
}
|
|
513
|
-
}
|
|
514
|
-
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
"function_definition_pattern": {
|
|
533
|
+
"patterns": [
|
|
534
|
+
{
|
|
535
|
+
"name": "meta.block.function_definition.vhdl",
|
|
536
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
537
|
+
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
515
538
|
"patterns": [
|
|
516
539
|
{
|
|
517
540
|
"include": "#control_patterns"
|
|
518
541
|
},
|
|
519
542
|
{
|
|
520
|
-
"include": "#
|
|
521
|
-
},
|
|
522
|
-
{
|
|
523
|
-
"include": "#component_pattern"
|
|
543
|
+
"include": "#parenthetical_list"
|
|
524
544
|
},
|
|
525
545
|
{
|
|
526
|
-
"include": "#
|
|
546
|
+
"include": "#type_pattern"
|
|
527
547
|
},
|
|
528
548
|
{
|
|
529
|
-
"include": "#
|
|
549
|
+
"include": "#record_pattern"
|
|
530
550
|
},
|
|
531
551
|
{
|
|
532
552
|
"include": "#cleanup"
|
|
533
553
|
}
|
|
534
|
-
]
|
|
535
|
-
}
|
|
536
|
-
]
|
|
537
|
-
},
|
|
538
|
-
"function_definition_pattern": {
|
|
539
|
-
"patterns": [
|
|
540
|
-
{
|
|
541
|
-
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
554
|
+
],
|
|
542
555
|
"beginCaptures": {
|
|
543
556
|
"1": {
|
|
544
557
|
"name": "storage.type.function.vhdl"
|
|
@@ -556,7 +569,6 @@
|
|
|
556
569
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
557
570
|
}
|
|
558
571
|
},
|
|
559
|
-
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
560
572
|
"endCaptures": {
|
|
561
573
|
"1": {
|
|
562
574
|
"name": "keyword.control.end.vhdl"
|
|
@@ -570,73 +582,38 @@
|
|
|
570
582
|
"7": {
|
|
571
583
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
572
584
|
}
|
|
573
|
-
}
|
|
574
|
-
"name": "meta.block.function_definition.vhdl",
|
|
575
|
-
"patterns": [
|
|
576
|
-
{
|
|
577
|
-
"include": "#control_patterns"
|
|
578
|
-
},
|
|
579
|
-
{
|
|
580
|
-
"include": "#parenthetical_list"
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
"include": "#type_pattern"
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
"include": "#record_pattern"
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
"include": "#cleanup"
|
|
590
|
-
}
|
|
591
|
-
]
|
|
585
|
+
}
|
|
592
586
|
}
|
|
593
587
|
]
|
|
594
588
|
},
|
|
595
589
|
"function_prototype_pattern": {
|
|
596
590
|
"patterns": [
|
|
597
591
|
{
|
|
598
|
-
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
599
|
-
"beginCaptures": {
|
|
600
|
-
"1": {
|
|
601
|
-
"name": "storage.type.function.vhdl"
|
|
602
|
-
},
|
|
603
|
-
"3": {
|
|
604
|
-
"name": "entity.name.function.function.prototype.vhdl"
|
|
605
|
-
},
|
|
606
|
-
"4": {
|
|
607
|
-
"name": "entity.name.function.function.prototype.vhdl"
|
|
608
|
-
},
|
|
609
|
-
"5": {
|
|
610
|
-
"name": "entity.name.function.function.prototype.vhdl"
|
|
611
|
-
},
|
|
612
|
-
"6": {
|
|
613
|
-
"name": "invalid.illegal.function.name.vhdl"
|
|
614
|
-
}
|
|
615
|
-
},
|
|
616
|
-
"end": "(?<=;)",
|
|
617
592
|
"name": "meta.block.function_prototype.vhdl",
|
|
593
|
+
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:function))\\s+\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
|
|
594
|
+
"end": "(?\u003c=;)",
|
|
618
595
|
"patterns": [
|
|
619
596
|
{
|
|
620
597
|
"begin": "\\b(?i:return)(?=\\s+[^;]+\\s*;)",
|
|
598
|
+
"end": "\\;",
|
|
599
|
+
"patterns": [
|
|
600
|
+
{
|
|
601
|
+
"include": "#parenthetical_list"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"include": "#cleanup"
|
|
605
|
+
}
|
|
606
|
+
],
|
|
621
607
|
"beginCaptures": {
|
|
622
608
|
"0": {
|
|
623
609
|
"name": "keyword.control.return.vhdl"
|
|
624
610
|
}
|
|
625
611
|
},
|
|
626
|
-
"end": "\\;",
|
|
627
612
|
"endCaptures": {
|
|
628
613
|
"0": {
|
|
629
614
|
"name": "punctuation.terminator.function_prototype.vhdl"
|
|
630
615
|
}
|
|
631
|
-
}
|
|
632
|
-
"patterns": [
|
|
633
|
-
{
|
|
634
|
-
"include": "#parenthetical_list"
|
|
635
|
-
},
|
|
636
|
-
{
|
|
637
|
-
"include": "#cleanup"
|
|
638
|
-
}
|
|
639
|
-
]
|
|
616
|
+
}
|
|
640
617
|
},
|
|
641
618
|
{
|
|
642
619
|
"include": "#parenthetical_list"
|
|
@@ -644,38 +621,77 @@
|
|
|
644
621
|
{
|
|
645
622
|
"include": "#cleanup"
|
|
646
623
|
}
|
|
647
|
-
]
|
|
624
|
+
],
|
|
625
|
+
"beginCaptures": {
|
|
626
|
+
"1": {
|
|
627
|
+
"name": "storage.type.function.vhdl"
|
|
628
|
+
},
|
|
629
|
+
"3": {
|
|
630
|
+
"name": "entity.name.function.function.prototype.vhdl"
|
|
631
|
+
},
|
|
632
|
+
"4": {
|
|
633
|
+
"name": "entity.name.function.function.prototype.vhdl"
|
|
634
|
+
},
|
|
635
|
+
"5": {
|
|
636
|
+
"name": "entity.name.function.function.prototype.vhdl"
|
|
637
|
+
},
|
|
638
|
+
"6": {
|
|
639
|
+
"name": "invalid.illegal.function.name.vhdl"
|
|
640
|
+
}
|
|
641
|
+
}
|
|
648
642
|
}
|
|
649
643
|
]
|
|
650
644
|
},
|
|
651
645
|
"generic_list_pattern": {
|
|
652
646
|
"patterns": [
|
|
653
647
|
{
|
|
648
|
+
"name": "meta.block.generic_list.vhdl",
|
|
654
649
|
"begin": "\\b(?i:generic)\\b",
|
|
650
|
+
"end": ";",
|
|
651
|
+
"patterns": [
|
|
652
|
+
{
|
|
653
|
+
"include": "#parenthetical_list"
|
|
654
|
+
}
|
|
655
|
+
],
|
|
655
656
|
"beginCaptures": {
|
|
656
657
|
"0": {
|
|
657
658
|
"name": "keyword.control.generic.vhdl"
|
|
658
659
|
}
|
|
659
660
|
},
|
|
660
|
-
"end": ";",
|
|
661
661
|
"endCaptures": {
|
|
662
662
|
"0": {
|
|
663
663
|
"name": "punctuation.terminator.statement.vhdl"
|
|
664
664
|
}
|
|
665
|
-
}
|
|
666
|
-
"name": "meta.block.generic_list.vhdl",
|
|
667
|
-
"patterns": [
|
|
668
|
-
{
|
|
669
|
-
"include": "#parenthetical_list"
|
|
670
|
-
}
|
|
671
|
-
]
|
|
665
|
+
}
|
|
672
666
|
}
|
|
673
667
|
]
|
|
674
668
|
},
|
|
675
669
|
"if_pattern": {
|
|
676
670
|
"patterns": [
|
|
677
671
|
{
|
|
672
|
+
"name": "meta.block.if.vhdl",
|
|
678
673
|
"begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Keyword if $4\n\t\t\t\t\t\t\\b((?i:if))\\b\n\t\t\t\t\t",
|
|
674
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
675
|
+
"patterns": [
|
|
676
|
+
{
|
|
677
|
+
"include": "#control_patterns"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"include": "#process_pattern"
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"include": "#entity_instantiation_pattern"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"include": "#component_pattern"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"include": "#component_instantiation_pattern"
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"include": "#cleanup"
|
|
693
|
+
}
|
|
694
|
+
],
|
|
679
695
|
"beginCaptures": {
|
|
680
696
|
"2": {
|
|
681
697
|
"name": "entity.name.tag.if.generate.begin.vhdl"
|
|
@@ -687,7 +703,6 @@
|
|
|
687
703
|
"name": "keyword.control.if.vhdl"
|
|
688
704
|
}
|
|
689
705
|
},
|
|
690
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
691
706
|
"endCaptures": {
|
|
692
707
|
"1": {
|
|
693
708
|
"name": "keyword.control.end.vhdl"
|
|
@@ -704,51 +719,52 @@
|
|
|
704
719
|
"9": {
|
|
705
720
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
706
721
|
}
|
|
707
|
-
}
|
|
708
|
-
"name": "meta.block.if.vhdl",
|
|
709
|
-
"patterns": [
|
|
710
|
-
{
|
|
711
|
-
"include": "#control_patterns"
|
|
712
|
-
},
|
|
713
|
-
{
|
|
714
|
-
"include": "#process_pattern"
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
"include": "#entity_instantiation_pattern"
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
"include": "#component_pattern"
|
|
721
|
-
},
|
|
722
|
-
{
|
|
723
|
-
"include": "#component_instantiation_pattern"
|
|
724
|
-
},
|
|
725
|
-
{
|
|
726
|
-
"include": "#cleanup"
|
|
727
|
-
}
|
|
728
|
-
]
|
|
722
|
+
}
|
|
729
723
|
}
|
|
730
724
|
]
|
|
731
725
|
},
|
|
732
726
|
"keywords": {
|
|
733
727
|
"patterns": [
|
|
734
728
|
{
|
|
735
|
-
"
|
|
736
|
-
"
|
|
729
|
+
"name": "keyword.control.attributes.vhdl",
|
|
730
|
+
"match": "'(?i:active|ascending|base|delayed|driving|event|high|image|instance|last|left|leftof|length|low|path|pos|pred|quiet|range|reverse|right|rightof|simple|stable|succ|transaction|val|value)\\b"
|
|
737
731
|
},
|
|
738
732
|
{
|
|
739
|
-
"
|
|
740
|
-
"
|
|
733
|
+
"name": "keyword.control.language.vhdl",
|
|
734
|
+
"match": "\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b"
|
|
741
735
|
},
|
|
742
736
|
{
|
|
743
|
-
"
|
|
744
|
-
"
|
|
737
|
+
"name": "keyword.operator.vhdl",
|
|
738
|
+
"match": "(\\+|\\-|\u003c=|=|=\u003e|:=|\u003e=|\u003e|\u003c|/|\\||\u0026|(\\*{1,2}))"
|
|
745
739
|
}
|
|
746
740
|
]
|
|
747
741
|
},
|
|
748
742
|
"package_body_pattern": {
|
|
749
743
|
"patterns": [
|
|
750
744
|
{
|
|
745
|
+
"name": "meta.block.package_body.vhdl",
|
|
751
746
|
"begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we want to be a package body $2\n\t\t\t\t\t\t((?i:body))\\s+\n\n\t\t\t\t\t\t# The valid identifier $4 or the invalid one $5\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $6\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
747
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)",
|
|
748
|
+
"patterns": [
|
|
749
|
+
{
|
|
750
|
+
"include": "#function_definition_pattern"
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"include": "#procedure_definition_pattern"
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
"include": "#type_pattern"
|
|
757
|
+
},
|
|
758
|
+
{
|
|
759
|
+
"include": "#subtype_pattern"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"include": "#record_pattern"
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
"include": "#cleanup"
|
|
766
|
+
}
|
|
767
|
+
],
|
|
752
768
|
"beginCaptures": {
|
|
753
769
|
"1": {
|
|
754
770
|
"name": "storage.type.package.vhdl"
|
|
@@ -766,7 +782,6 @@
|
|
|
766
782
|
"name": "keyword.control.is.vhdl"
|
|
767
783
|
}
|
|
768
784
|
},
|
|
769
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)",
|
|
770
785
|
"endCaptures": {
|
|
771
786
|
"1": {
|
|
772
787
|
"name": "keyword.control.end.vhdl"
|
|
@@ -783,14 +798,22 @@
|
|
|
783
798
|
"8": {
|
|
784
799
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
785
800
|
}
|
|
786
|
-
}
|
|
787
|
-
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
]
|
|
804
|
+
},
|
|
805
|
+
"package_pattern": {
|
|
806
|
+
"patterns": [
|
|
807
|
+
{
|
|
808
|
+
"name": "meta.block.package.vhdl",
|
|
809
|
+
"begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
810
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)",
|
|
788
811
|
"patterns": [
|
|
789
812
|
{
|
|
790
|
-
"include": "#
|
|
813
|
+
"include": "#function_prototype_pattern"
|
|
791
814
|
},
|
|
792
815
|
{
|
|
793
|
-
"include": "#
|
|
816
|
+
"include": "#procedure_prototype_pattern"
|
|
794
817
|
},
|
|
795
818
|
{
|
|
796
819
|
"include": "#type_pattern"
|
|
@@ -801,17 +824,13 @@
|
|
|
801
824
|
{
|
|
802
825
|
"include": "#record_pattern"
|
|
803
826
|
},
|
|
827
|
+
{
|
|
828
|
+
"include": "#component_pattern"
|
|
829
|
+
},
|
|
804
830
|
{
|
|
805
831
|
"include": "#cleanup"
|
|
806
832
|
}
|
|
807
|
-
]
|
|
808
|
-
}
|
|
809
|
-
]
|
|
810
|
-
},
|
|
811
|
-
"package_pattern": {
|
|
812
|
-
"patterns": [
|
|
813
|
-
{
|
|
814
|
-
"begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
833
|
+
],
|
|
815
834
|
"beginCaptures": {
|
|
816
835
|
"1": {
|
|
817
836
|
"name": "storage.type.package.vhdl"
|
|
@@ -826,7 +845,6 @@
|
|
|
826
845
|
"name": "keyword.control.is.vhdl"
|
|
827
846
|
}
|
|
828
847
|
},
|
|
829
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)",
|
|
830
848
|
"endCaptures": {
|
|
831
849
|
"1": {
|
|
832
850
|
"name": "keyword.control.end.vhdl"
|
|
@@ -840,55 +858,21 @@
|
|
|
840
858
|
"7": {
|
|
841
859
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
842
860
|
}
|
|
843
|
-
}
|
|
844
|
-
"name": "meta.block.package.vhdl",
|
|
845
|
-
"patterns": [
|
|
846
|
-
{
|
|
847
|
-
"include": "#function_prototype_pattern"
|
|
848
|
-
},
|
|
849
|
-
{
|
|
850
|
-
"include": "#procedure_prototype_pattern"
|
|
851
|
-
},
|
|
852
|
-
{
|
|
853
|
-
"include": "#type_pattern"
|
|
854
|
-
},
|
|
855
|
-
{
|
|
856
|
-
"include": "#subtype_pattern"
|
|
857
|
-
},
|
|
858
|
-
{
|
|
859
|
-
"include": "#record_pattern"
|
|
860
|
-
},
|
|
861
|
-
{
|
|
862
|
-
"include": "#component_pattern"
|
|
863
|
-
},
|
|
864
|
-
{
|
|
865
|
-
"include": "#cleanup"
|
|
866
|
-
}
|
|
867
|
-
]
|
|
861
|
+
}
|
|
868
862
|
}
|
|
869
863
|
]
|
|
870
864
|
},
|
|
871
865
|
"parenthetical_list": {
|
|
872
866
|
"patterns": [
|
|
873
867
|
{
|
|
874
|
-
"begin": "\\(",
|
|
875
|
-
"beginCaptures": {
|
|
876
|
-
"0": {
|
|
877
|
-
"name": "punctuation.definition.parenthetical_list.begin.vhdl"
|
|
878
|
-
}
|
|
879
|
-
},
|
|
880
|
-
"end": "(?<=\\))",
|
|
881
868
|
"name": "meta.block.parenthetical_list.vhdl",
|
|
869
|
+
"begin": "\\(",
|
|
870
|
+
"end": "(?\u003c=\\))",
|
|
882
871
|
"patterns": [
|
|
883
872
|
{
|
|
873
|
+
"name": "meta.list.element.vhdl",
|
|
884
874
|
"begin": "(?=['\"a-zA-Z0-9])",
|
|
885
875
|
"end": "(;|\\)|,)",
|
|
886
|
-
"endCaptures": {
|
|
887
|
-
"0": {
|
|
888
|
-
"name": "meta.item.stopping.character.vhdl"
|
|
889
|
-
}
|
|
890
|
-
},
|
|
891
|
-
"name": "meta.list.element.vhdl",
|
|
892
876
|
"patterns": [
|
|
893
877
|
{
|
|
894
878
|
"include": "#comments"
|
|
@@ -899,74 +883,103 @@
|
|
|
899
883
|
{
|
|
900
884
|
"include": "#cleanup"
|
|
901
885
|
}
|
|
902
|
-
]
|
|
886
|
+
],
|
|
887
|
+
"endCaptures": {
|
|
888
|
+
"0": {
|
|
889
|
+
"name": "meta.item.stopping.character.vhdl"
|
|
890
|
+
}
|
|
891
|
+
}
|
|
903
892
|
},
|
|
904
893
|
{
|
|
905
|
-
"
|
|
906
|
-
"
|
|
894
|
+
"name": "invalid.illegal.unexpected.parenthesis.vhdl",
|
|
895
|
+
"match": "\\)"
|
|
907
896
|
},
|
|
908
897
|
{
|
|
909
898
|
"include": "#cleanup"
|
|
910
899
|
}
|
|
911
|
-
]
|
|
900
|
+
],
|
|
901
|
+
"beginCaptures": {
|
|
902
|
+
"0": {
|
|
903
|
+
"name": "punctuation.definition.parenthetical_list.begin.vhdl"
|
|
904
|
+
}
|
|
905
|
+
}
|
|
912
906
|
}
|
|
913
907
|
]
|
|
914
908
|
},
|
|
915
909
|
"parenthetical_pair": {
|
|
916
910
|
"patterns": [
|
|
917
911
|
{
|
|
912
|
+
"name": "meta.block.parenthetical_pair.vhdl",
|
|
918
913
|
"begin": "\\(",
|
|
914
|
+
"end": "\\)",
|
|
915
|
+
"patterns": [
|
|
916
|
+
{
|
|
917
|
+
"include": "#parenthetical_pair"
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"include": "#cleanup"
|
|
921
|
+
}
|
|
922
|
+
],
|
|
919
923
|
"beginCaptures": {
|
|
920
924
|
"0": {
|
|
921
925
|
"name": "punctuation.section.scope.begin.vhdl"
|
|
922
926
|
}
|
|
923
927
|
},
|
|
924
|
-
"end": "\\)",
|
|
925
928
|
"endCaptures": {
|
|
926
929
|
"0": {
|
|
927
930
|
"name": "punctuation.section.scope.end.vhdl"
|
|
928
931
|
}
|
|
929
|
-
}
|
|
930
|
-
"name": "meta.block.parenthetical_pair.vhdl",
|
|
931
|
-
"patterns": [
|
|
932
|
-
{
|
|
933
|
-
"include": "#parenthetical_pair"
|
|
934
|
-
},
|
|
935
|
-
{
|
|
936
|
-
"include": "#cleanup"
|
|
937
|
-
}
|
|
938
|
-
]
|
|
932
|
+
}
|
|
939
933
|
}
|
|
940
934
|
]
|
|
941
935
|
},
|
|
942
936
|
"port_list_pattern": {
|
|
943
937
|
"patterns": [
|
|
944
938
|
{
|
|
939
|
+
"name": "meta.block.port_list.vhdl",
|
|
945
940
|
"begin": "\\b(?i:port)\\b",
|
|
941
|
+
"end": ";",
|
|
942
|
+
"patterns": [
|
|
943
|
+
{
|
|
944
|
+
"include": "#parenthetical_list"
|
|
945
|
+
}
|
|
946
|
+
],
|
|
946
947
|
"beginCaptures": {
|
|
947
948
|
"0": {
|
|
948
949
|
"name": "keyword.control.port.vhdl"
|
|
949
950
|
}
|
|
950
951
|
},
|
|
951
|
-
"end": ";",
|
|
952
952
|
"endCaptures": {
|
|
953
953
|
"0": {
|
|
954
954
|
"name": "punctuation.terminator.statement.vhdl"
|
|
955
955
|
}
|
|
956
|
-
}
|
|
957
|
-
"name": "meta.block.port_list.vhdl",
|
|
958
|
-
"patterns": [
|
|
959
|
-
{
|
|
960
|
-
"include": "#parenthetical_list"
|
|
961
|
-
}
|
|
962
|
-
]
|
|
956
|
+
}
|
|
963
957
|
}
|
|
964
958
|
]
|
|
965
959
|
},
|
|
966
960
|
"procedure_definition_pattern": {
|
|
967
961
|
"patterns": [
|
|
968
962
|
{
|
|
963
|
+
"name": "meta.block.procedure_definition.vhdl",
|
|
969
964
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:procedure))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list is\n\t\t\t\t\t\t(?=\\s*(\\(|(?i:is)))\n\t\t\t\t\t",
|
|
965
|
+
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
966
|
+
"patterns": [
|
|
967
|
+
{
|
|
968
|
+
"include": "#parenthetical_list"
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"include": "#control_patterns"
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
"include": "#type_pattern"
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"include": "#record_pattern"
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"include": "#cleanup"
|
|
981
|
+
}
|
|
982
|
+
],
|
|
970
983
|
"beginCaptures": {
|
|
971
984
|
"1": {
|
|
972
985
|
"name": "storage.type.procedure.vhdl"
|
|
@@ -981,7 +994,6 @@
|
|
|
981
994
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
982
995
|
}
|
|
983
996
|
},
|
|
984
|
-
"end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
985
997
|
"endCaptures": {
|
|
986
998
|
"1": {
|
|
987
999
|
"name": "keyword.control.end.vhdl"
|
|
@@ -995,32 +1007,21 @@
|
|
|
995
1007
|
"7": {
|
|
996
1008
|
"name": "invalid.illegal.mismatched.identifier.vhdl"
|
|
997
1009
|
}
|
|
998
|
-
}
|
|
999
|
-
"name": "meta.block.procedure_definition.vhdl",
|
|
1000
|
-
"patterns": [
|
|
1001
|
-
{
|
|
1002
|
-
"include": "#parenthetical_list"
|
|
1003
|
-
},
|
|
1004
|
-
{
|
|
1005
|
-
"include": "#control_patterns"
|
|
1006
|
-
},
|
|
1007
|
-
{
|
|
1008
|
-
"include": "#type_pattern"
|
|
1009
|
-
},
|
|
1010
|
-
{
|
|
1011
|
-
"include": "#record_pattern"
|
|
1012
|
-
},
|
|
1013
|
-
{
|
|
1014
|
-
"include": "#cleanup"
|
|
1015
|
-
}
|
|
1016
|
-
]
|
|
1010
|
+
}
|
|
1017
1011
|
}
|
|
1018
1012
|
]
|
|
1019
1013
|
},
|
|
1020
1014
|
"procedure_prototype_pattern": {
|
|
1021
1015
|
"patterns": [
|
|
1022
1016
|
{
|
|
1017
|
+
"name": "meta.block.procedure_prototype.vhdl",
|
|
1023
1018
|
"begin": "(?x)\n\t\t\t\t\t\t\\b((?i:procedure))\\s+\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t(?=\\s*(\\(|;))\n\t\t\t\t\t",
|
|
1019
|
+
"end": ";",
|
|
1020
|
+
"patterns": [
|
|
1021
|
+
{
|
|
1022
|
+
"include": "#parenthetical_list"
|
|
1023
|
+
}
|
|
1024
|
+
],
|
|
1024
1025
|
"beginCaptures": {
|
|
1025
1026
|
"1": {
|
|
1026
1027
|
"name": "storage.type.procedure.vhdl"
|
|
@@ -1032,25 +1033,28 @@
|
|
|
1032
1033
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
1033
1034
|
}
|
|
1034
1035
|
},
|
|
1035
|
-
"end": ";",
|
|
1036
1036
|
"endCaptures": {
|
|
1037
1037
|
"0": {
|
|
1038
1038
|
"name": "punctual.vhdl"
|
|
1039
1039
|
}
|
|
1040
|
-
}
|
|
1041
|
-
"name": "meta.block.procedure_prototype.vhdl",
|
|
1042
|
-
"patterns": [
|
|
1043
|
-
{
|
|
1044
|
-
"include": "#parenthetical_list"
|
|
1045
|
-
}
|
|
1046
|
-
]
|
|
1040
|
+
}
|
|
1047
1041
|
}
|
|
1048
1042
|
]
|
|
1049
1043
|
},
|
|
1050
1044
|
"process_pattern": {
|
|
1051
1045
|
"patterns": [
|
|
1052
1046
|
{
|
|
1047
|
+
"name": "meta.block.process.vhdl",
|
|
1053
1048
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word process #4\n\t\t\t\t\t\t((?i:process))\n\t\t\t\t\t",
|
|
1049
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1050
|
+
"patterns": [
|
|
1051
|
+
{
|
|
1052
|
+
"include": "#control_patterns"
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
"include": "#cleanup"
|
|
1056
|
+
}
|
|
1057
|
+
],
|
|
1054
1058
|
"beginCaptures": {
|
|
1055
1059
|
"2": {
|
|
1056
1060
|
"name": "entity.name.section.process.begin.vhdl"
|
|
@@ -1062,7 +1066,6 @@
|
|
|
1062
1066
|
"name": "keyword.control.process.vhdl"
|
|
1063
1067
|
}
|
|
1064
1068
|
},
|
|
1065
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1066
1069
|
"endCaptures": {
|
|
1067
1070
|
"1": {
|
|
1068
1071
|
"name": "keyword.control.end.vhdl"
|
|
@@ -1076,37 +1079,34 @@
|
|
|
1076
1079
|
"7": {
|
|
1077
1080
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
1078
1081
|
}
|
|
1079
|
-
}
|
|
1080
|
-
"name": "meta.block.process.vhdl",
|
|
1081
|
-
"patterns": [
|
|
1082
|
-
{
|
|
1083
|
-
"include": "#control_patterns"
|
|
1084
|
-
},
|
|
1085
|
-
{
|
|
1086
|
-
"include": "#cleanup"
|
|
1087
|
-
}
|
|
1088
|
-
]
|
|
1082
|
+
}
|
|
1089
1083
|
}
|
|
1090
1084
|
]
|
|
1091
1085
|
},
|
|
1092
1086
|
"punctuation": {
|
|
1093
1087
|
"patterns": [
|
|
1094
1088
|
{
|
|
1095
|
-
"
|
|
1096
|
-
"
|
|
1089
|
+
"name": "punctuation.definition.other.vhdl",
|
|
1090
|
+
"match": "(\\.|,|:|;|\\(|\\))"
|
|
1097
1091
|
}
|
|
1098
1092
|
]
|
|
1099
1093
|
},
|
|
1100
1094
|
"record_pattern": {
|
|
1101
1095
|
"patterns": [
|
|
1102
1096
|
{
|
|
1097
|
+
"name": "meta.block.record.vhdl",
|
|
1103
1098
|
"begin": "\\b(?i:record)\\b",
|
|
1099
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1100
|
+
"patterns": [
|
|
1101
|
+
{
|
|
1102
|
+
"include": "#cleanup"
|
|
1103
|
+
}
|
|
1104
|
+
],
|
|
1104
1105
|
"beginCaptures": {
|
|
1105
1106
|
"0": {
|
|
1106
1107
|
"name": "storage.type.record.vhdl"
|
|
1107
1108
|
}
|
|
1108
1109
|
},
|
|
1109
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1110
1110
|
"endCaptures": {
|
|
1111
1111
|
"1": {
|
|
1112
1112
|
"name": "keyword.control.end.vhdl"
|
|
@@ -1120,13 +1120,7 @@
|
|
|
1120
1120
|
"6": {
|
|
1121
1121
|
"name": "invalid.illegal.invalid.identifier.vhdl"
|
|
1122
1122
|
}
|
|
1123
|
-
}
|
|
1124
|
-
"name": "meta.block.record.vhdl",
|
|
1125
|
-
"patterns": [
|
|
1126
|
-
{
|
|
1127
|
-
"include": "#cleanup"
|
|
1128
|
-
}
|
|
1129
|
-
]
|
|
1123
|
+
}
|
|
1130
1124
|
},
|
|
1131
1125
|
{
|
|
1132
1126
|
"include": "#cleanup"
|
|
@@ -1136,6 +1130,8 @@
|
|
|
1136
1130
|
"strings": {
|
|
1137
1131
|
"patterns": [
|
|
1138
1132
|
{
|
|
1133
|
+
"name": "string.quoted.single.vhdl",
|
|
1134
|
+
"match": "(').(')",
|
|
1139
1135
|
"captures": {
|
|
1140
1136
|
"1": {
|
|
1141
1137
|
"name": "punctuation.definition.string.begin.vhdl"
|
|
@@ -1143,42 +1139,47 @@
|
|
|
1143
1139
|
"2": {
|
|
1144
1140
|
"name": "punctuation.definition.string.end.vhdl"
|
|
1145
1141
|
}
|
|
1146
|
-
}
|
|
1147
|
-
"match": "(').(')",
|
|
1148
|
-
"name": "string.quoted.single.vhdl"
|
|
1142
|
+
}
|
|
1149
1143
|
},
|
|
1150
1144
|
{
|
|
1145
|
+
"name": "string.quoted.double.vhdl",
|
|
1151
1146
|
"begin": "\"",
|
|
1147
|
+
"end": "\"",
|
|
1148
|
+
"patterns": [
|
|
1149
|
+
{
|
|
1150
|
+
"name": "constant.character.escape.vhdl",
|
|
1151
|
+
"match": "\\\\."
|
|
1152
|
+
}
|
|
1153
|
+
],
|
|
1152
1154
|
"beginCaptures": {
|
|
1153
1155
|
"0": {
|
|
1154
1156
|
"name": "punctuation.definition.string.begin.vhdl"
|
|
1155
1157
|
}
|
|
1156
1158
|
},
|
|
1157
|
-
"end": "\"",
|
|
1158
1159
|
"endCaptures": {
|
|
1159
1160
|
"0": {
|
|
1160
1161
|
"name": "punctuation.definition.string.end.vhdl"
|
|
1161
1162
|
}
|
|
1162
|
-
}
|
|
1163
|
-
"name": "string.quoted.double.vhdl",
|
|
1164
|
-
"patterns": [
|
|
1165
|
-
{
|
|
1166
|
-
"match": "\\\\.",
|
|
1167
|
-
"name": "constant.character.escape.vhdl"
|
|
1168
|
-
}
|
|
1169
|
-
]
|
|
1163
|
+
}
|
|
1170
1164
|
},
|
|
1171
1165
|
{
|
|
1166
|
+
"name": "string.other.backslash.vhdl",
|
|
1172
1167
|
"begin": "\\\\",
|
|
1173
|
-
"end": "\\\\"
|
|
1174
|
-
"name": "string.other.backslash.vhdl"
|
|
1168
|
+
"end": "\\\\"
|
|
1175
1169
|
}
|
|
1176
1170
|
]
|
|
1177
1171
|
},
|
|
1178
1172
|
"subtype_pattern": {
|
|
1179
1173
|
"patterns": [
|
|
1180
1174
|
{
|
|
1175
|
+
"name": "meta.block.subtype.vhdl",
|
|
1181
1176
|
"begin": "(?x)\n\t\t\t\t\t\t# The word subtype $1\n\t\t\t\t\t\t\\b((?i:subtype))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# The word is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",
|
|
1177
|
+
"end": ";",
|
|
1178
|
+
"patterns": [
|
|
1179
|
+
{
|
|
1180
|
+
"include": "#cleanup"
|
|
1181
|
+
}
|
|
1182
|
+
],
|
|
1182
1183
|
"beginCaptures": {
|
|
1183
1184
|
"1": {
|
|
1184
1185
|
"name": "keyword.control.subtype.vhdl"
|
|
@@ -1193,86 +1194,79 @@
|
|
|
1193
1194
|
"name": "keyword.control.is.vhdl"
|
|
1194
1195
|
}
|
|
1195
1196
|
},
|
|
1196
|
-
"end": ";",
|
|
1197
1197
|
"endCaptures": {
|
|
1198
1198
|
"0": {
|
|
1199
1199
|
"name": "punctuation.terminator.statement.vhdl"
|
|
1200
1200
|
}
|
|
1201
|
-
}
|
|
1202
|
-
"name": "meta.block.subtype.vhdl",
|
|
1203
|
-
"patterns": [
|
|
1204
|
-
{
|
|
1205
|
-
"include": "#cleanup"
|
|
1206
|
-
}
|
|
1207
|
-
]
|
|
1201
|
+
}
|
|
1208
1202
|
}
|
|
1209
1203
|
]
|
|
1210
1204
|
},
|
|
1211
1205
|
"support_constants": {
|
|
1212
1206
|
"patterns": [
|
|
1213
1207
|
{
|
|
1214
|
-
"
|
|
1215
|
-
"
|
|
1208
|
+
"name": "support.constant.ieee.math_real.vhdl",
|
|
1209
|
+
"match": "\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b"
|
|
1216
1210
|
},
|
|
1217
1211
|
{
|
|
1218
|
-
"
|
|
1219
|
-
"
|
|
1212
|
+
"name": "support.constant.ieee.math_complex.vhdl",
|
|
1213
|
+
"match": "\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b"
|
|
1220
1214
|
},
|
|
1221
1215
|
{
|
|
1222
|
-
"
|
|
1223
|
-
"
|
|
1216
|
+
"name": "support.constant.std.standard.vhdl",
|
|
1217
|
+
"match": "\\b(?i:true|false)\\b"
|
|
1224
1218
|
}
|
|
1225
1219
|
]
|
|
1226
1220
|
},
|
|
1227
1221
|
"support_functions": {
|
|
1228
1222
|
"patterns": [
|
|
1229
1223
|
{
|
|
1230
|
-
"
|
|
1231
|
-
"
|
|
1224
|
+
"name": "support.function.std.env.vhdl",
|
|
1225
|
+
"match": "\\b(?i:finish|stop|resolution_limit)\\b"
|
|
1232
1226
|
},
|
|
1233
1227
|
{
|
|
1234
|
-
"
|
|
1235
|
-
"
|
|
1228
|
+
"name": "support.function.std.textio.vhdl",
|
|
1229
|
+
"match": "\\b(?i:readline|read|writeline|write|endfile|endline)\\b"
|
|
1236
1230
|
},
|
|
1237
1231
|
{
|
|
1238
|
-
"
|
|
1239
|
-
"
|
|
1232
|
+
"name": "support.function.ieee.std_logic_1164.vhdl",
|
|
1233
|
+
"match": "\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b"
|
|
1240
1234
|
},
|
|
1241
1235
|
{
|
|
1242
|
-
"
|
|
1243
|
-
"
|
|
1236
|
+
"name": "support.function.ieee.numeric_std.vhdl",
|
|
1237
|
+
"match": "\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b"
|
|
1244
1238
|
},
|
|
1245
1239
|
{
|
|
1246
|
-
"
|
|
1247
|
-
"
|
|
1240
|
+
"name": "support.function.ieee.math_real.vhdl",
|
|
1241
|
+
"match": "\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b"
|
|
1248
1242
|
},
|
|
1249
1243
|
{
|
|
1250
|
-
"
|
|
1251
|
-
"
|
|
1244
|
+
"name": "support.function.ieee.math_complex.vhdl",
|
|
1245
|
+
"match": "\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b"
|
|
1252
1246
|
}
|
|
1253
1247
|
]
|
|
1254
1248
|
},
|
|
1255
1249
|
"support_types": {
|
|
1256
1250
|
"patterns": [
|
|
1257
1251
|
{
|
|
1258
|
-
"
|
|
1259
|
-
"
|
|
1252
|
+
"name": "support.type.std.standard.vhdl",
|
|
1253
|
+
"match": "\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b"
|
|
1260
1254
|
},
|
|
1261
1255
|
{
|
|
1262
|
-
"
|
|
1263
|
-
"
|
|
1256
|
+
"name": "support.type.std.textio.vhdl",
|
|
1257
|
+
"match": "\\b(?i:line|text|side|width|input|output)\\b"
|
|
1264
1258
|
},
|
|
1265
1259
|
{
|
|
1266
|
-
"
|
|
1267
|
-
"
|
|
1260
|
+
"name": "support.type.ieee.std_logic_1164.vhdl",
|
|
1261
|
+
"match": "\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b"
|
|
1268
1262
|
},
|
|
1269
1263
|
{
|
|
1270
|
-
"
|
|
1271
|
-
"
|
|
1264
|
+
"name": "support.type.ieee.numeric_std.vhdl",
|
|
1265
|
+
"match": "\\b(?i:signed|unsigned)\\b"
|
|
1272
1266
|
},
|
|
1273
1267
|
{
|
|
1274
|
-
"
|
|
1275
|
-
"
|
|
1268
|
+
"name": "support.type.ieee.math_complex.vhdl",
|
|
1269
|
+
"match": "\\b(?i:complex|complex_polar)\\b"
|
|
1276
1270
|
}
|
|
1277
1271
|
]
|
|
1278
1272
|
},
|
|
@@ -1298,7 +1292,17 @@
|
|
|
1298
1292
|
"type_pattern": {
|
|
1299
1293
|
"patterns": [
|
|
1300
1294
|
{
|
|
1295
|
+
"name": "meta.block.type.vhdl",
|
|
1301
1296
|
"begin": "(?x)\n\t\t\t\t\t\t# The word type $1\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A semicolon is coming up if we are incomplete\n\t\t\t\t\t\t\t (?=\\s*;)\n\n\t\t\t\t\t\t\t# Or the word is comes up $7\n\t\t\t\t\t\t\t|(\\s+((?i:is)))\n\t\t\t\t\t\t)\\b\n\t\t\t\t\t",
|
|
1297
|
+
"end": ";",
|
|
1298
|
+
"patterns": [
|
|
1299
|
+
{
|
|
1300
|
+
"include": "#record_pattern"
|
|
1301
|
+
},
|
|
1302
|
+
{
|
|
1303
|
+
"include": "#cleanup"
|
|
1304
|
+
}
|
|
1305
|
+
],
|
|
1302
1306
|
"beginCaptures": {
|
|
1303
1307
|
"1": {
|
|
1304
1308
|
"name": "keyword.control.type.vhdl"
|
|
@@ -1313,28 +1317,28 @@
|
|
|
1313
1317
|
"name": "keyword.control.is.vhdl"
|
|
1314
1318
|
}
|
|
1315
1319
|
},
|
|
1316
|
-
"end": ";",
|
|
1317
1320
|
"endCaptures": {
|
|
1318
1321
|
"0": {
|
|
1319
1322
|
"name": "punctuation.terminator.statement.vhdl"
|
|
1320
1323
|
}
|
|
1321
|
-
}
|
|
1322
|
-
"name": "meta.block.type.vhdl",
|
|
1323
|
-
"patterns": [
|
|
1324
|
-
{
|
|
1325
|
-
"include": "#record_pattern"
|
|
1326
|
-
},
|
|
1327
|
-
{
|
|
1328
|
-
"include": "#cleanup"
|
|
1329
|
-
}
|
|
1330
|
-
]
|
|
1324
|
+
}
|
|
1331
1325
|
}
|
|
1332
1326
|
]
|
|
1333
1327
|
},
|
|
1334
1328
|
"while_pattern": {
|
|
1335
1329
|
"patterns": [
|
|
1336
1330
|
{
|
|
1331
|
+
"name": "meta.block.while.vhdl",
|
|
1337
1332
|
"begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:while))\\b\n\t\t\t\t\t",
|
|
1333
|
+
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1334
|
+
"patterns": [
|
|
1335
|
+
{
|
|
1336
|
+
"include": "#control_patterns"
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
"include": "#cleanup"
|
|
1340
|
+
}
|
|
1341
|
+
],
|
|
1338
1342
|
"beginCaptures": {
|
|
1339
1343
|
"2": {
|
|
1340
1344
|
"name": "entity.name.type.vhdl"
|
|
@@ -1346,7 +1350,6 @@
|
|
|
1346
1350
|
"name": "keyword.control.while.vhdl"
|
|
1347
1351
|
}
|
|
1348
1352
|
},
|
|
1349
|
-
"end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",
|
|
1350
1353
|
"endCaptures": {
|
|
1351
1354
|
"1": {
|
|
1352
1355
|
"name": "keyword.control.end.vhdl"
|
|
@@ -1363,20 +1366,9 @@
|
|
|
1363
1366
|
"8": {
|
|
1364
1367
|
"name": "invalid.illegal.mismatched.identifier"
|
|
1365
1368
|
}
|
|
1366
|
-
}
|
|
1367
|
-
"name": "meta.block.while.vhdl",
|
|
1368
|
-
"patterns": [
|
|
1369
|
-
{
|
|
1370
|
-
"include": "#control_patterns"
|
|
1371
|
-
},
|
|
1372
|
-
{
|
|
1373
|
-
"include": "#cleanup"
|
|
1374
|
-
}
|
|
1375
|
-
]
|
|
1369
|
+
}
|
|
1376
1370
|
}
|
|
1377
1371
|
]
|
|
1378
1372
|
}
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
|
-
"uuid": "99A3EB51-FCCD-4EA4-A642-10C2E8B93112"
|
|
1382
|
-
}
|
|
1373
|
+
}
|
|
1374
|
+
}
|