A designer for quickly creating
|
| 中文 | English |
|---|
CLI
npm i @code-recycle/cli -D
Create a new script folder
- Choose a location to create a folder and create it in the following hierarchy
You can refer to the Demo Repo
.
├── action
│ ├── hello2.js
│ └── hello.js
├── snippet
│ ├── hello2.js
│ └── manifest.json
└── view
├── hello2.js
└── hello.js
Create Script
- Use the
editorto open the created folder, then right-click to quickly create a script


Editor Script

- Here we demonstrate how to change the
adeclaration in a file fromlettoconst
Test Selector
- Click on the corresponding node to automatically copy the relevant labels

Implementation

More?
- Script Util Introduce
AST View Debugger
- Located in the right upper corner of the editor's title bar.
- Used for visual debugging when selecting
custom rule

CSS Selector Universal Language Query
- Use
css selectorfor different language node queries - Implement the majority of the CSS selector functions
| name | Support |
|---|---|
Descendant |
*, ,>,<,+,~,, |
Attribute |
[xx],[xx=yy],[xx^=yy],[xx$=yy],[xx*=yy],[xx!=yy],[xx~=yy] , [xx\|=yy] |
Pseudo |
:not,:has,:is,:where,:first-child,:last-child,:only-child,:nth-child,:nth-last-child,:first-of-type,:last-of-type,:only-of-type,:nth-of-type,:nth-last-of-type,:raw,:use |
Pseudo-element |
::parent, ::children(x) ,::xx |
Description
Custom pseudo-classes
:raw: used to query theoriginalvalue/tag attribute of the current nodexxx:raw([value=yyy]); this selector is used in very extreme scenarios and is used only in a few cases.
::parent: query the parent element::children(x): query the xth child element of the current element::xx: query the custom child element defined in the current language.Custom pseudo-classes
:use: like:is,Can query siblings and descendants
Query general attributes of a node
index: Index representing the position of the current node in its parent.tag: Label of the node.value: Text of the current node.range: Position of the current node.children: List of child elements of the current node.type: Type of the node (node/token).
Supported Language/Grammar
- typescript(typescript)
- typescript(javascript)
- typescript(typescriptreact)
- typescript(javascriptreact)
- @angular/compiler(ng-html)
- @angular/compiler(html)
- htmlparser2(html)
- htmlparser2(xml)
- jsonc-parser(json)
- gsql-ast-parser(sql)
- @vue/compiler-dom(vue)
| @lezer | |||
|---|---|---|---|
| cpp | css | html | java |
| javascript | json | lezer | markdown |
| php | python | rust | sass |
| xml |
| antl4 | |||||
|---|---|---|---|---|---|
| abb | abnf | acme | adaparent/ada83 | adaparent/ada95 | adaparent/ada2005 |
| alef | algol60 | alloy | alpaca | angelscript | antlrparent/antlr2 |
| apt | arangodb | argus | arithmetic | ASL | asmparent/asm6502 |
| asmparent/asm8086 | asmparent/asmMASM | asmparent/asmZ80 | asmparent/masm | asmparent/nasm | asmparent/pdp7 |
| asmparent/ptx-parent/ptx-2.1 | asnparent/asn | atl | b | basic | bcl |
| bibcode | Bicep | bnf | C | calculator | callable |
| caql | cayenne | clf | clojure | cmake | cobol85 |
| CPP14 | cql | cql3 | creole | CSS3 | csv |
| cto | cypher | Dart2 | datalog | dcm | dice |
| doiurl | dot | edif300 | edn | elixir-parser | erlang |
| esolangparent/brainflack | esolangparent/cool | esolangparent/dgol | esolangparent/lolcode | esolangparent/loop | esolangparent/nanofuck |
| esolangparent/snowball | esolangparent/wheel | EVMB | fasta | fdo91 | fen |
| flowmatic | focal | fol | fortranparent/fortran77 | fortranparent/fortran90 | fusiontables |
| glsl | gml | golang | graphql | graphstream-dgs | gtin |
| guitartab | html | http | hypertalk | ical | icon |
| inf | informix | infosapient | iri | iso8601 | istc |
| jam | janus | javaparent/java | javaparent/java8 | javaparent/java20 | jsparent/javascript |
| jpa | json | json5 | karel | kirikiri-tjs | kotlinparent/kotlin |
| kuka | kquery | lambda | lcc | less | lisa |
| lrc | ltl | Lua | Lucene | matlab | mckeeman-form |
| memcached | metamath | metric | microc | modelica | modula2 |
| moo | morsecode | PowerQuery | mps | muddb | mumath |
| muparser | newick | oberon | oncrpc | orwell | p |
| pascal | pbm | pcre | pddl | pdn | peoplecode |
| pii | pl0 | plucid | ply | PMMN | postalcode |
| prolog | promql | propcalc | properties | protobuf2 | protobuf3 |
| pythonparent/python3 | qif | quakemap | racket-bsl | racket-isl | rcs |
| refal | restructuredtext | rfc822parent/datetime | rfc822parent/rfc822 | domain | filter |
| robotwar | romannumerals | ron | rpn | Corundum | rust |
| scotty | scss | semver | sexpression | sgf | sharc |
| sieve | smalltalk | smiles | smtlibv2 | snobol | Solidity |
| sqlparent/athena | sqlparent/derby | sqlparent/drill | sqlparent/hiveparent/hivev2 | sqlparent/hiveparent/hivev3 | sqlparent/hiveparent/hivev4 |
| sqlparent/mysql | sqlparent/plsql | sqlparent/trino | sqlparent/tsql | sqlparent/informix-sql | stacktrace |
| stellaris | suokif | swift-fin | szf | tcp | telephone |
| tiny | tinybasic | tinyc | tinymud | tl | tnt |
| trac | tsv | ttm | turing | turtle | turtle-doc |
| unicode/graphemes | unreal_angelscript | upnp | url | useragent | vb6 |
| verilogparent/verilog | verilogparent/systemverilog | vhdl | vmf | wavefront | webidl |
| wkt-crs-v1 | wln | wren | xml | xpathparent/xpath | xpathparent/XPath20 |
| tree-sitter | |||||
|---|---|---|---|---|---|
| haskell | javascript | php | java | c_sharp | css |
| cpp | python | c | ruby | go | bash |
| tsx | json | scala | embedded_template | agda | jsdoc |
| tsq | regex | ocaml | ocaml_interface | dbscheme | ql |
| toml | swift | ada | sosl | soql | apex |
| capnp | clojure | cmake | comment | commonlisp | cuda |
| d | dockerfile | dot | elixir | elm | elisp |
| erlang | fennel | fish | formula | fortran | gitattributes |
| gleam | glsl | gomod | gowork | graphql | hack |
| jq | json5 | kotlin | lalrpop | latex | lean |
| tablegen | lua | make | markdown | markdown_inline | meson |
| nix | objc | org | pascal | pgn | proto |
| racket | rasi | re2c | rego | rst | r |
| scss | sexp | smali | sourcepawn | sparql | sql_bigquery |
| ssh_client_config | svelte | thrift | query | turtle | twig |
| vue | wat | wast | wgsl | yaml | yang |
tree-sitterneeds to fetch code from thehttps://github.com/wszgrcy/tree-sitter-wasm-bundlerepository or customized according to the format, then write the local path into the configuration filecode-recycle.parser.tree-sitter.repository.
Support
| System | Support | test |
|---|---|---|
| Windows | [x] | [x] |
| Linux | [x] | [x] |
| OSX | [x] | [x] |
| Software | Support |
|---|---|
| VSCode | [x] |
The project code contains
| Function | Include |
|---|---|
| I18n | [x] |
| Configuration WebView | |
| Extension |
Other
About open source
- Before developers can maintain their livelihood and ensure sufficient energy to develop the plugin, the plugin will not be open-source temporarily.
- When developers can make a living from the plugin and maintain their lives, we will consider open-sourceing.
- Currently, the plugin has no commercial earnings.
- If you have better ideas for commercialization, please contact me at any time:
wszgrcy@gmail.com