demotape 0.0.0.pre.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 +7 -0
- data/.github/CODEOWNERS +4 -0
- data/.github/FUNDING.yml +4 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- data/.github/ISSUE_TEMPLATE/config.yml +5 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +38 -0
- data/.github/dependabot.yml +15 -0
- data/.github/workflows/ruby-tests.yml +53 -0
- data/.gitignore +15 -0
- data/.rubocop.yml +18 -0
- data/CHANGELOG.md +16 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTING.md +80 -0
- data/Gemfile +5 -0
- data/LICENSE.md +20 -0
- data/Makefile +29 -0
- data/README.md +574 -0
- data/Rakefile +19 -0
- data/bin/console +16 -0
- data/bin/setup +10 -0
- data/bin/themes +37 -0
- data/demotape.ascii +19 -0
- data/demotape.gemspec +55 -0
- data/demotape.jsonc +59 -0
- data/demotape.y +520 -0
- data/demotape_ascii.rb +29 -0
- data/editors/sublime-text/Comments (DemoTape).tmPreferences +21 -0
- data/editors/sublime-text/DemoTape.sublime-completions +140 -0
- data/editors/sublime-text/DemoTape.sublime-syntax +243 -0
- data/editors/vim/README.md +91 -0
- data/editors/vim/ftdetect/demotape.vim +2 -0
- data/editors/vim/syntax/demotape.vim +81 -0
- data/editors/vscode/README.md +29 -0
- data/editors/vscode/demotape.tmLanguage.json +201 -0
- data/editors/vscode/language-configuration.json +24 -0
- data/editors/vscode/package.json +30 -0
- data/examples/alt.mp4 +0 -0
- data/examples/alt.png +0 -0
- data/examples/alt.tape +9 -0
- data/examples/arrow.mp4 +0 -0
- data/examples/arrow.png +0 -0
- data/examples/arrow.tape +7 -0
- data/examples/backspace.mp4 +0 -0
- data/examples/backspace.png +0 -0
- data/examples/backspace.tape +4 -0
- data/examples/bash.mp4 +0 -0
- data/examples/bash.png +0 -0
- data/examples/bash.tape +4 -0
- data/examples/bg.jpg +0 -0
- data/examples/clear.mp4 +0 -0
- data/examples/clear.png +0 -0
- data/examples/clear.tape +6 -0
- data/examples/cli_ui_interactive_prompt.mp4 +0 -0
- data/examples/cli_ui_interactive_prompt.png +0 -0
- data/examples/cli_ui_interactive_prompt.tape +16 -0
- data/examples/cli_ui_nested_frames.mp4 +0 -0
- data/examples/cli_ui_nested_frames.png +0 -0
- data/examples/cli_ui_nested_frames.tape +15 -0
- data/examples/cli_ui_progress.mp4 +0 -0
- data/examples/cli_ui_progress.png +0 -0
- data/examples/cli_ui_progress.tape +6 -0
- data/examples/cli_ui_spinner.mp4 +0 -0
- data/examples/cli_ui_spinner.png +0 -0
- data/examples/cli_ui_spinner.tape +6 -0
- data/examples/cli_ui_status_widget.mp4 +0 -0
- data/examples/cli_ui_status_widget.png +0 -0
- data/examples/cli_ui_status_widget.tape +6 -0
- data/examples/cli_ui_symbols.mp4 +0 -0
- data/examples/cli_ui_symbols.png +0 -0
- data/examples/cli_ui_symbols.tape +6 -0
- data/examples/cli_ui_text_prompt.mp4 +0 -0
- data/examples/cli_ui_text_prompt.png +0 -0
- data/examples/cli_ui_text_prompt.tape +10 -0
- data/examples/clipboard.mp4 +0 -0
- data/examples/clipboard.png +0 -0
- data/examples/clipboard.tape +5 -0
- data/examples/ctrl.mp4 +0 -0
- data/examples/ctrl.png +0 -0
- data/examples/ctrl.tape +5 -0
- data/examples/ctrl_arrows.mp4 +0 -0
- data/examples/ctrl_arrows.png +0 -0
- data/examples/ctrl_arrows.tape +14 -0
- data/examples/demotape.mp4 +0 -0
- data/examples/demotape.png +0 -0
- data/examples/demotape.tape +6 -0
- data/examples/demotape.txt +13 -0
- data/examples/enter.mp4 +0 -0
- data/examples/enter.png +0 -0
- data/examples/enter.tape +3 -0
- data/examples/errors/include_itself.tape +1 -0
- data/examples/fastfetch.gif +0 -0
- data/examples/fastfetch.mp4 +0 -0
- data/examples/fastfetch.png +0 -0
- data/examples/fastfetch.tape +11 -0
- data/examples/fish.mp4 +0 -0
- data/examples/fish.png +0 -0
- data/examples/fish.tape +4 -0
- data/examples/format.mp4 +0 -0
- data/examples/format.png +0 -0
- data/examples/format.tape +15 -0
- data/examples/gh-cli.mp4 +0 -0
- data/examples/gh-cli.png +0 -0
- data/examples/gh-cli.tape +13 -0
- data/examples/gif_loop.gif +0 -0
- data/examples/gif_loop.png +0 -0
- data/examples/gif_loop.tape +5 -0
- data/examples/include.mp4 +0 -0
- data/examples/include.png +0 -0
- data/examples/include.tape +1 -0
- data/examples/include_with_set.mp4 +0 -0
- data/examples/include_with_set.png +0 -0
- data/examples/include_with_set.tape +2 -0
- data/examples/meta/cli.tape +10 -0
- data/examples/nerdfonts.mp4 +0 -0
- data/examples/nerdfonts.png +0 -0
- data/examples/nerdfonts.tape +9 -0
- data/examples/output.gif +0 -0
- data/examples/output.mp4 +0 -0
- data/examples/output.png +0 -0
- data/examples/output.tape +8 -0
- data/examples/output.webm +0 -0
- data/examples/products.json +1803 -0
- data/examples/screenshot.mp4 +0 -0
- data/examples/screenshot.png +0 -0
- data/examples/screenshot.tape +9 -0
- data/examples/script.rb +3 -0
- data/examples/set_cursor_bar.mp4 +0 -0
- data/examples/set_cursor_bar.png +0 -0
- data/examples/set_cursor_bar.tape +5 -0
- data/examples/set_cursor_blink.mp4 +0 -0
- data/examples/set_cursor_blink.png +0 -0
- data/examples/set_cursor_blink.tape +4 -0
- data/examples/set_cursor_underline.mp4 +0 -0
- data/examples/set_cursor_underline.png +0 -0
- data/examples/set_cursor_underline.tape +5 -0
- data/examples/set_dimensions.mp4 +0 -0
- data/examples/set_dimensions.png +0 -0
- data/examples/set_dimensions.tape +5 -0
- data/examples/set_font_family.mp4 +0 -0
- data/examples/set_font_family.png +0 -0
- data/examples/set_font_family.tape +4 -0
- data/examples/set_font_size.mp4 +0 -0
- data/examples/set_font_size.png +0 -0
- data/examples/set_font_size.tape +4 -0
- data/examples/set_line_height.mp4 +0 -0
- data/examples/set_line_height.png +0 -0
- data/examples/set_line_height.tape +8 -0
- data/examples/set_margin.mp4 +0 -0
- data/examples/set_margin.png +0 -0
- data/examples/set_margin.tape +7 -0
- data/examples/set_margin_with_border_radius.mp4 +0 -0
- data/examples/set_margin_with_border_radius.png +0 -0
- data/examples/set_margin_with_border_radius.tape +8 -0
- data/examples/set_margin_with_image.mp4 +0 -0
- data/examples/set_margin_with_image.png +0 -0
- data/examples/set_margin_with_image.tape +7 -0
- data/examples/set_padding.mp4 +0 -0
- data/examples/set_padding.png +0 -0
- data/examples/set_padding.tape +7 -0
- data/examples/set_theme.mp4 +0 -0
- data/examples/set_theme.png +0 -0
- data/examples/set_theme.tape +9 -0
- data/examples/set_theme_property.mp4 +0 -0
- data/examples/set_theme_property.png +0 -0
- data/examples/set_theme_property.tape +10 -0
- data/examples/set_typing_speed.mp4 +0 -0
- data/examples/set_typing_speed.png +0 -0
- data/examples/set_typing_speed.tape +6 -0
- data/examples/slides.mp4 +0 -0
- data/examples/slides.png +0 -0
- data/examples/slides.tape +14 -0
- data/examples/space.mp4 +0 -0
- data/examples/space.png +0 -0
- data/examples/space.tape +3 -0
- data/examples/stdin.mp4 +0 -0
- data/examples/stdin.png +0 -0
- data/examples/stdin.tape +7 -0
- data/examples/tab.mp4 +0 -0
- data/examples/tab.png +0 -0
- data/examples/tab.tape +5 -0
- data/examples/themes/3024_day.png +0 -0
- data/examples/themes/3024_night.png +0 -0
- data/examples/themes/aardvark_blue.png +0 -0
- data/examples/themes/abernathy.png +0 -0
- data/examples/themes/adventure.png +0 -0
- data/examples/themes/adventure_time.png +0 -0
- data/examples/themes/afterglow.png +0 -0
- data/examples/themes/alabaster.png +0 -0
- data/examples/themes/alien_blood.png +0 -0
- data/examples/themes/andromeda.png +0 -0
- data/examples/themes/apple_classic.png +0 -0
- data/examples/themes/apple_system_colors.png +0 -0
- data/examples/themes/arcoiris.png +0 -0
- data/examples/themes/argonaut.png +0 -0
- data/examples/themes/arthur.png +0 -0
- data/examples/themes/atelier_sulphurpool.png +0 -0
- data/examples/themes/atom.png +0 -0
- data/examples/themes/atom_one_light.png +0 -0
- data/examples/themes/aurora.png +0 -0
- data/examples/themes/ayu.png +0 -0
- data/examples/themes/ayu_light.png +0 -0
- data/examples/themes/ayu_mirage.png +0 -0
- data/examples/themes/banana_blueberry.png +0 -0
- data/examples/themes/batman.png +0 -0
- data/examples/themes/belafonte_day.png +0 -0
- data/examples/themes/belafonte_night.png +0 -0
- data/examples/themes/birds_of_paradise.png +0 -0
- data/examples/themes/blazer.png +0 -0
- data/examples/themes/blue_berry_pie.png +0 -0
- data/examples/themes/blue_dolphin.png +0 -0
- data/examples/themes/blue_matrix.png +0 -0
- data/examples/themes/bluloco_dark.png +0 -0
- data/examples/themes/bluloco_light.png +0 -0
- data/examples/themes/borland.png +0 -0
- data/examples/themes/breeze.png +0 -0
- data/examples/themes/bright_lights.png +0 -0
- data/examples/themes/broadcast.png +0 -0
- data/examples/themes/brogrammer.png +0 -0
- data/examples/themes/bubbles.png +0 -0
- data/examples/themes/builtin_dark.png +0 -0
- data/examples/themes/builtin_light.png +0 -0
- data/examples/themes/builtin_pastel_dark.png +0 -0
- data/examples/themes/builtin_solarized_dark.png +0 -0
- data/examples/themes/builtin_solarized_light.png +0 -0
- data/examples/themes/builtin_tango_dark.png +0 -0
- data/examples/themes/builtin_tango_light.png +0 -0
- data/examples/themes/c64.png +0 -0
- data/examples/themes/calamity.png +0 -0
- data/examples/themes/catppuccin_frappe.png +0 -0
- data/examples/themes/catppuccin_latte.png +0 -0
- data/examples/themes/catppuccin_macchiato.png +0 -0
- data/examples/themes/catppuccin_mocha.png +0 -0
- data/examples/themes/cga.png +0 -0
- data/examples/themes/chalk.png +0 -0
- data/examples/themes/chalkboard.png +0 -0
- data/examples/themes/challenger_deep.png +0 -0
- data/examples/themes/chester.png +0 -0
- data/examples/themes/ciapre.png +0 -0
- data/examples/themes/clrs.png +0 -0
- data/examples/themes/cobalt2.png +0 -0
- data/examples/themes/cobalt_neon.png +0 -0
- data/examples/themes/coffee_theme.png +0 -0
- data/examples/themes/contrast_light.png +0 -0
- data/examples/themes/coolnight.png +0 -0
- data/examples/themes/crayon_pony_fish.png +0 -0
- data/examples/themes/crystal_violet.png +0 -0
- data/examples/themes/cutie_pro.png +0 -0
- data/examples/themes/cyber_cube.png +0 -0
- data/examples/themes/cyber_punk2077.png +0 -0
- data/examples/themes/cyberdyne.png +0 -0
- data/examples/themes/cyberpunk.png +0 -0
- data/examples/themes/dark_pastel.png +0 -0
- data/examples/themes/dark_plus.png +0 -0
- data/examples/themes/darkermatrix.png +0 -0
- data/examples/themes/darkmatrix.png +0 -0
- data/examples/themes/darkside.png +0 -0
- data/examples/themes/dayfox.png +0 -0
- data/examples/themes/deep.png +0 -0
- data/examples/themes/desert.png +0 -0
- data/examples/themes/dimmed_monokai.png +0 -0
- data/examples/themes/django.png +0 -0
- data/examples/themes/django_reborn_again.png +0 -0
- data/examples/themes/django_smooth.png +0 -0
- data/examples/themes/doom_one.png +0 -0
- data/examples/themes/doom_peacock.png +0 -0
- data/examples/themes/dot_gov.png +0 -0
- data/examples/themes/dracula.png +0 -0
- data/examples/themes/dracula_plus.png +0 -0
- data/examples/themes/duckbones.png +0 -0
- data/examples/themes/duotone_dark.png +0 -0
- data/examples/themes/earthsong.png +0 -0
- data/examples/themes/elemental.png +0 -0
- data/examples/themes/elementary.png +0 -0
- data/examples/themes/encom.png +0 -0
- data/examples/themes/espresso.png +0 -0
- data/examples/themes/espresso_libre.png +0 -0
- data/examples/themes/everblush.png +0 -0
- data/examples/themes/fahrenheit.png +0 -0
- data/examples/themes/fairyfloss.png +0 -0
- data/examples/themes/farmhouse_dark.png +0 -0
- data/examples/themes/farmhouse_light.png +0 -0
- data/examples/themes/fideloper.png +0 -0
- data/examples/themes/firefly_traditional.png +0 -0
- data/examples/themes/firefox_dev.png +0 -0
- data/examples/themes/firewatch.png +0 -0
- data/examples/themes/fish_tank.png +0 -0
- data/examples/themes/flat.png +0 -0
- data/examples/themes/flatland.png +0 -0
- data/examples/themes/flexoki_dark.png +0 -0
- data/examples/themes/flexoki_light.png +0 -0
- data/examples/themes/floraverse.png +0 -0
- data/examples/themes/forest_blue.png +0 -0
- data/examples/themes/framer.png +0 -0
- data/examples/themes/front_end_delight.png +0 -0
- data/examples/themes/fun_forrest.png +0 -0
- data/examples/themes/galaxy.png +0 -0
- data/examples/themes/galizur.png +0 -0
- data/examples/themes/ganyu.png +0 -0
- data/examples/themes/git_hub_dark.png +0 -0
- data/examples/themes/github.png +0 -0
- data/examples/themes/glacier.png +0 -0
- data/examples/themes/glorious.png +0 -0
- data/examples/themes/grape.png +0 -0
- data/examples/themes/grass.png +0 -0
- data/examples/themes/grey_green.png +0 -0
- data/examples/themes/gruvbox_dark.png +0 -0
- data/examples/themes/gruvbox_dark_hard.png +0 -0
- data/examples/themes/gruvbox_light.png +0 -0
- data/examples/themes/guezwhoz.png +0 -0
- data/examples/themes/h4rithd.png +0 -0
- data/examples/themes/h4rithd_com.png +0 -0
- data/examples/themes/ha_x0_r_blue.png +0 -0
- data/examples/themes/ha_x0_r_gr33_n.png +0 -0
- data/examples/themes/ha_x0_r_r3_d.png +0 -0
- data/examples/themes/hacktober.png +0 -0
- data/examples/themes/hardcore.png +0 -0
- data/examples/themes/harper.png +0 -0
- data/examples/themes/highway.png +0 -0
- data/examples/themes/hipster_green.png +0 -0
- data/examples/themes/hivacruz.png +0 -0
- data/examples/themes/homebrew.png +0 -0
- data/examples/themes/hopscotch.png +0 -0
- data/examples/themes/hopscotch_256.png +0 -0
- data/examples/themes/horizon.png +0 -0
- data/examples/themes/hurtado.png +0 -0
- data/examples/themes/hybrid.png +0 -0
- data/examples/themes/hyper.png +0 -0
- data/examples/themes/ic_green_ppl.png +0 -0
- data/examples/themes/ic_orange_ppl.png +0 -0
- data/examples/themes/iceberg_dark.png +0 -0
- data/examples/themes/iceberg_light.png +0 -0
- data/examples/themes/idea.png +0 -0
- data/examples/themes/idle_toes.png +0 -0
- data/examples/themes/ir_black.png +0 -0
- data/examples/themes/iterm2_dark_background.png +0 -0
- data/examples/themes/iterm2_default.png +0 -0
- data/examples/themes/iterm2_light_background.png +0 -0
- data/examples/themes/iterm2_pastel_dark_background.png +0 -0
- data/examples/themes/iterm2_smoooooth.png +0 -0
- data/examples/themes/iterm2_solarized_dark.png +0 -0
- data/examples/themes/iterm2_solarized_light.png +0 -0
- data/examples/themes/iterm2_tango_dark.png +0 -0
- data/examples/themes/iterm2_tango_light.png +0 -0
- data/examples/themes/jackie_brown.png +0 -0
- data/examples/themes/japanesque.png +0 -0
- data/examples/themes/jellybeans.png +0 -0
- data/examples/themes/jet_brains_darcula.png +0 -0
- data/examples/themes/jubi.png +0 -0
- data/examples/themes/juicy_colors.png +0 -0
- data/examples/themes/kanagawa.png +0 -0
- data/examples/themes/kanagawabones.png +0 -0
- data/examples/themes/kibble.png +0 -0
- data/examples/themes/kolorit.png +0 -0
- data/examples/themes/konsolas.png +0 -0
- data/examples/themes/lab_fox.png +0 -0
- data/examples/themes/laser.png +0 -0
- data/examples/themes/later_this_evening.png +0 -0
- data/examples/themes/lavandula.png +0 -0
- data/examples/themes/liquid_carbon.png +0 -0
- data/examples/themes/liquid_carbon_transparent.png +0 -0
- data/examples/themes/liquid_carbon_transparent_inverse.png +0 -0
- data/examples/themes/lovelace.png +0 -0
- data/examples/themes/man_page.png +0 -0
- data/examples/themes/mariana.png +0 -0
- data/examples/themes/material.png +0 -0
- data/examples/themes/material_dark.png +0 -0
- data/examples/themes/material_darker.png +0 -0
- data/examples/themes/material_design_colors.png +0 -0
- data/examples/themes/material_ocean.png +0 -0
- data/examples/themes/mathias.png +0 -0
- data/examples/themes/matrix.png +0 -0
- data/examples/themes/medallion.png +0 -0
- data/examples/themes/mellifluous.png +0 -0
- data/examples/themes/midnight_in_mojave.png +0 -0
- data/examples/themes/mirage.png +0 -0
- data/examples/themes/misterioso.png +0 -0
- data/examples/themes/molokai.png +0 -0
- data/examples/themes/mona_lisa.png +0 -0
- data/examples/themes/monokai_cmder.png +0 -0
- data/examples/themes/monokai_pro.png +0 -0
- data/examples/themes/monokai_pro_filter_octagon.png +0 -0
- data/examples/themes/monokai_pro_filter_ristretto.png +0 -0
- data/examples/themes/monokai_remastered.png +0 -0
- data/examples/themes/monokai_soda.png +0 -0
- data/examples/themes/monokai_vivid.png +0 -0
- data/examples/themes/moonlight_ii.png +0 -0
- data/examples/themes/n0tch2k.png +0 -0
- data/examples/themes/neobones_dark.png +0 -0
- data/examples/themes/neobones_light.png +0 -0
- data/examples/themes/neon.png +0 -0
- data/examples/themes/neopolitan.png +0 -0
- data/examples/themes/neutron.png +0 -0
- data/examples/themes/night_city.png +0 -0
- data/examples/themes/night_lion_v1.png +0 -0
- data/examples/themes/night_lion_v2.png +0 -0
- data/examples/themes/night_owlish_light.png +0 -0
- data/examples/themes/nightfox.png +0 -0
- data/examples/themes/niji.png +0 -0
- data/examples/themes/nocturnal_winter.png +0 -0
- data/examples/themes/nord.png +0 -0
- data/examples/themes/nord_light.png +0 -0
- data/examples/themes/novel.png +0 -0
- data/examples/themes/nvim_dark.png +0 -0
- data/examples/themes/nvim_light.png +0 -0
- data/examples/themes/obsidian.png +0 -0
- data/examples/themes/ocean.png +0 -0
- data/examples/themes/oceanic_material.png +0 -0
- data/examples/themes/oceanic_next.png +0 -0
- data/examples/themes/ollie.png +0 -0
- data/examples/themes/one_dark.png +0 -0
- data/examples/themes/one_half_dark.png +0 -0
- data/examples/themes/one_half_light.png +0 -0
- data/examples/themes/one_star.png +0 -0
- data/examples/themes/operator_mono_dark.png +0 -0
- data/examples/themes/overnight_slumber.png +0 -0
- data/examples/themes/pale_night_hc.png +0 -0
- data/examples/themes/pandora.png +0 -0
- data/examples/themes/paraiso_dark.png +0 -0
- data/examples/themes/paul_millr.png +0 -0
- data/examples/themes/pencil_dark.png +0 -0
- data/examples/themes/pencil_light.png +0 -0
- data/examples/themes/peppermint.png +0 -0
- data/examples/themes/piatto_light.png +0 -0
- data/examples/themes/pnevma.png +0 -0
- data/examples/themes/popping_and_locking.png +0 -0
- data/examples/themes/primary.png +0 -0
- data/examples/themes/primer.png +0 -0
- data/examples/themes/pro.png +0 -0
- data/examples/themes/pro_light.png +0 -0
- data/examples/themes/purple_rain.png +0 -0
- data/examples/themes/purplepeter.png +0 -0
- data/examples/themes/qb64_super_dark_blue.png +0 -0
- data/examples/themes/rapture.png +0 -0
- data/examples/themes/raycast_dark.png +0 -0
- data/examples/themes/raycast_light.png +0 -0
- data/examples/themes/rebecca.png +0 -0
- data/examples/themes/red_alert.png +0 -0
- data/examples/themes/red_planet.png +0 -0
- data/examples/themes/red_sands.png +0 -0
- data/examples/themes/relaxed.png +0 -0
- data/examples/themes/retro.png +0 -0
- data/examples/themes/retrowave.png +0 -0
- data/examples/themes/rippedcasts.png +0 -0
- data/examples/themes/rose_pine.png +0 -0
- data/examples/themes/rose_pine_dawn.png +0 -0
- data/examples/themes/rose_pine_moon.png +0 -0
- data/examples/themes/rouge_2.png +0 -0
- data/examples/themes/royal.png +0 -0
- data/examples/themes/ryuuko.png +0 -0
- data/examples/themes/sakura.png +0 -0
- data/examples/themes/scarlet_protocol.png +0 -0
- data/examples/themes/sea_shells.png +0 -0
- data/examples/themes/seafoam_pastel.png +0 -0
- data/examples/themes/seoulbones_dark.png +0 -0
- data/examples/themes/seoulbones_light.png +0 -0
- data/examples/themes/serendipity_midnight.png +0 -0
- data/examples/themes/serendipity_morning.png +0 -0
- data/examples/themes/serendipity_sunset.png +0 -0
- data/examples/themes/seti.png +0 -0
- data/examples/themes/shades_of_purple.png +0 -0
- data/examples/themes/shaman.png +0 -0
- data/examples/themes/slate.png +0 -0
- data/examples/themes/sleepy_hollow.png +0 -0
- data/examples/themes/smyck.png +0 -0
- data/examples/themes/snazzy.png +0 -0
- data/examples/themes/soft_server.png +0 -0
- data/examples/themes/solarized_darcula.png +0 -0
- data/examples/themes/solarized_dark_higher_contrast.png +0 -0
- data/examples/themes/solarized_dark_patched.png +0 -0
- data/examples/themes/sonoran_gothic.png +0 -0
- data/examples/themes/sonoran_sunrise.png +0 -0
- data/examples/themes/space_gray.png +0 -0
- data/examples/themes/space_gray_eighties.png +0 -0
- data/examples/themes/space_gray_eighties_dull.png +0 -0
- data/examples/themes/spacedust.png +0 -0
- data/examples/themes/spiderman.png +0 -0
- data/examples/themes/spring.png +0 -0
- data/examples/themes/square.png +0 -0
- data/examples/themes/sublette.png +0 -0
- data/examples/themes/subliminal.png +0 -0
- data/examples/themes/sundried.png +0 -0
- data/examples/themes/symfonic.png +0 -0
- data/examples/themes/synthwave.png +0 -0
- data/examples/themes/synthwave_alpha.png +0 -0
- data/examples/themes/synthwave_everything.png +0 -0
- data/examples/themes/tango_adapted.png +0 -0
- data/examples/themes/tango_half_adapted.png +0 -0
- data/examples/themes/teerb.png +0 -0
- data/examples/themes/terafox.png +0 -0
- data/examples/themes/terminal_basic.png +0 -0
- data/examples/themes/thayer_bright.png +0 -0
- data/examples/themes/the_hulk.png +0 -0
- data/examples/themes/theme.tape +13 -0
- data/examples/themes/tinacious_design_dark.png +0 -0
- data/examples/themes/tinacious_design_light.png +0 -0
- data/examples/themes/tokyo_night.png +0 -0
- data/examples/themes/tokyo_night_light.png +0 -0
- data/examples/themes/tokyo_night_storm.png +0 -0
- data/examples/themes/tokyonight.png +0 -0
- data/examples/themes/tokyonight_day.png +0 -0
- data/examples/themes/tokyonight_storm.png +0 -0
- data/examples/themes/tomorrow.png +0 -0
- data/examples/themes/tomorrow_night.png +0 -0
- data/examples/themes/tomorrow_night_blue.png +0 -0
- data/examples/themes/tomorrow_night_bright.png +0 -0
- data/examples/themes/tomorrow_night_burns.png +0 -0
- data/examples/themes/tomorrow_night_eighties.png +0 -0
- data/examples/themes/toy_chest.png +0 -0
- data/examples/themes/treehouse.png +0 -0
- data/examples/themes/twilight.png +0 -0
- data/examples/themes/ubuntu.png +0 -0
- data/examples/themes/ultra_dark.png +0 -0
- data/examples/themes/ultra_violent.png +0 -0
- data/examples/themes/under_the_sea.png +0 -0
- data/examples/themes/unholy.png +0 -0
- data/examples/themes/unikitty.png +0 -0
- data/examples/themes/urple.png +0 -0
- data/examples/themes/vaughn.png +0 -0
- data/examples/themes/vesper.png +0 -0
- data/examples/themes/vibrant_ink.png +0 -0
- data/examples/themes/vimbones.png +0 -0
- data/examples/themes/violet_dark.png +0 -0
- data/examples/themes/violet_light.png +0 -0
- data/examples/themes/warm_neon.png +0 -0
- data/examples/themes/wez.png +0 -0
- data/examples/themes/whimsy.png +0 -0
- data/examples/themes/wild_cherry.png +0 -0
- data/examples/themes/wilmersdorf.png +0 -0
- data/examples/themes/wombat.png +0 -0
- data/examples/themes/wryan.png +0 -0
- data/examples/themes/zenbones.png +0 -0
- data/examples/themes/zenbones_dark.png +0 -0
- data/examples/themes/zenbones_light.png +0 -0
- data/examples/themes/zenburn.png +0 -0
- data/examples/themes/zenburned.png +0 -0
- data/examples/themes/zenwritten_dark.png +0 -0
- data/examples/themes/zenwritten_light.png +0 -0
- data/examples/themes/zeonica.png +0 -0
- data/examples/tmux.mp4 +0 -0
- data/examples/tmux.png +0 -0
- data/examples/tmux.tape +28 -0
- data/examples/type.mp4 +0 -0
- data/examples/type.png +0 -0
- data/examples/type.tape +11 -0
- data/examples/type_file.mp4 +0 -0
- data/examples/type_file.png +0 -0
- data/examples/type_file.tape +23 -0
- data/examples/variable_typing.mp4 +0 -0
- data/examples/variable_typing.png +0 -0
- data/examples/variable_typing.tape +41 -0
- data/examples/wait_until.mp4 +0 -0
- data/examples/wait_until.png +0 -0
- data/examples/wait_until.tape +8 -0
- data/examples/zsh.mp4 +0 -0
- data/examples/zsh.png +0 -0
- data/examples/zsh.tape +4 -0
- data/exe/demotape +11 -0
- data/lib/demo_tape/bounds.rb +15 -0
- data/lib/demo_tape/cli.rb +158 -0
- data/lib/demo_tape/command.rb +341 -0
- data/lib/demo_tape/duration.rb +31 -0
- data/lib/demo_tape/exporter.rb +372 -0
- data/lib/demo_tape/generator.rb +17 -0
- data/lib/demo_tape/lexer.rb +262 -0
- data/lib/demo_tape/parser.rb +889 -0
- data/lib/demo_tape/rcs/bash +32 -0
- data/lib/demo_tape/rcs/fish +31 -0
- data/lib/demo_tape/rcs/zsh +40 -0
- data/lib/demo_tape/runner.rb +722 -0
- data/lib/demo_tape/spacing.rb +5 -0
- data/lib/demo_tape/spinner.rb +37 -0
- data/lib/demo_tape/templates/.keep +0 -0
- data/lib/demo_tape/theme.rb +49 -0
- data/lib/demo_tape/themes/3024_day.json +22 -0
- data/lib/demo_tape/themes/3024_night.json +22 -0
- data/lib/demo_tape/themes/aardvark_blue.json +22 -0
- data/lib/demo_tape/themes/abernathy.json +22 -0
- data/lib/demo_tape/themes/adventure.json +22 -0
- data/lib/demo_tape/themes/adventure_time.json +22 -0
- data/lib/demo_tape/themes/afterglow.json +22 -0
- data/lib/demo_tape/themes/alabaster.json +22 -0
- data/lib/demo_tape/themes/alien_blood.json +22 -0
- data/lib/demo_tape/themes/andromeda.json +22 -0
- data/lib/demo_tape/themes/apple_classic.json +22 -0
- data/lib/demo_tape/themes/apple_system_colors.json +22 -0
- data/lib/demo_tape/themes/arcoiris.json +22 -0
- data/lib/demo_tape/themes/argonaut.json +22 -0
- data/lib/demo_tape/themes/arthur.json +22 -0
- data/lib/demo_tape/themes/atelier_sulphurpool.json +22 -0
- data/lib/demo_tape/themes/atom.json +22 -0
- data/lib/demo_tape/themes/atom_one_light.json +22 -0
- data/lib/demo_tape/themes/aurora.json +22 -0
- data/lib/demo_tape/themes/ayu.json +22 -0
- data/lib/demo_tape/themes/ayu_light.json +22 -0
- data/lib/demo_tape/themes/ayu_mirage.json +22 -0
- data/lib/demo_tape/themes/banana_blueberry.json +22 -0
- data/lib/demo_tape/themes/batman.json +22 -0
- data/lib/demo_tape/themes/belafonte_day.json +22 -0
- data/lib/demo_tape/themes/belafonte_night.json +22 -0
- data/lib/demo_tape/themes/birds_of_paradise.json +22 -0
- data/lib/demo_tape/themes/blazer.json +22 -0
- data/lib/demo_tape/themes/blue_berry_pie.json +22 -0
- data/lib/demo_tape/themes/blue_dolphin.json +22 -0
- data/lib/demo_tape/themes/blue_matrix.json +22 -0
- data/lib/demo_tape/themes/bluloco_dark.json +22 -0
- data/lib/demo_tape/themes/bluloco_light.json +22 -0
- data/lib/demo_tape/themes/borland.json +22 -0
- data/lib/demo_tape/themes/breeze.json +22 -0
- data/lib/demo_tape/themes/bright_lights.json +22 -0
- data/lib/demo_tape/themes/broadcast.json +22 -0
- data/lib/demo_tape/themes/brogrammer.json +22 -0
- data/lib/demo_tape/themes/bubbles.json +22 -0
- data/lib/demo_tape/themes/builtin_dark.json +22 -0
- data/lib/demo_tape/themes/builtin_light.json +22 -0
- data/lib/demo_tape/themes/builtin_pastel_dark.json +22 -0
- data/lib/demo_tape/themes/builtin_solarized_dark.json +22 -0
- data/lib/demo_tape/themes/builtin_solarized_light.json +22 -0
- data/lib/demo_tape/themes/builtin_tango_dark.json +22 -0
- data/lib/demo_tape/themes/builtin_tango_light.json +22 -0
- data/lib/demo_tape/themes/c64.json +22 -0
- data/lib/demo_tape/themes/calamity.json +22 -0
- data/lib/demo_tape/themes/catppuccin_frappe.json +22 -0
- data/lib/demo_tape/themes/catppuccin_latte.json +22 -0
- data/lib/demo_tape/themes/catppuccin_macchiato.json +22 -0
- data/lib/demo_tape/themes/catppuccin_mocha.json +22 -0
- data/lib/demo_tape/themes/cga.json +22 -0
- data/lib/demo_tape/themes/chalk.json +22 -0
- data/lib/demo_tape/themes/chalkboard.json +22 -0
- data/lib/demo_tape/themes/challenger_deep.json +22 -0
- data/lib/demo_tape/themes/chester.json +22 -0
- data/lib/demo_tape/themes/ciapre.json +22 -0
- data/lib/demo_tape/themes/clrs.json +22 -0
- data/lib/demo_tape/themes/cobalt2.json +22 -0
- data/lib/demo_tape/themes/cobalt_neon.json +22 -0
- data/lib/demo_tape/themes/coffee_theme.json +22 -0
- data/lib/demo_tape/themes/contrast_light.json +22 -0
- data/lib/demo_tape/themes/coolnight.json +22 -0
- data/lib/demo_tape/themes/crayon_pony_fish.json +22 -0
- data/lib/demo_tape/themes/crystal_violet.json +22 -0
- data/lib/demo_tape/themes/cutie_pro.json +22 -0
- data/lib/demo_tape/themes/cyber_cube.json +22 -0
- data/lib/demo_tape/themes/cyber_punk2077.json +22 -0
- data/lib/demo_tape/themes/cyberdyne.json +22 -0
- data/lib/demo_tape/themes/cyberpunk.json +22 -0
- data/lib/demo_tape/themes/dark_pastel.json +22 -0
- data/lib/demo_tape/themes/dark_plus.json +22 -0
- data/lib/demo_tape/themes/darkermatrix.json +22 -0
- data/lib/demo_tape/themes/darkmatrix.json +22 -0
- data/lib/demo_tape/themes/darkside.json +22 -0
- data/lib/demo_tape/themes/dayfox.json +22 -0
- data/lib/demo_tape/themes/deep.json +22 -0
- data/lib/demo_tape/themes/default_dark.json +22 -0
- data/lib/demo_tape/themes/default_light.json +22 -0
- data/lib/demo_tape/themes/desert.json +22 -0
- data/lib/demo_tape/themes/dimmed_monokai.json +22 -0
- data/lib/demo_tape/themes/django.json +22 -0
- data/lib/demo_tape/themes/django_reborn_again.json +22 -0
- data/lib/demo_tape/themes/django_smooth.json +22 -0
- data/lib/demo_tape/themes/doom_one.json +22 -0
- data/lib/demo_tape/themes/doom_peacock.json +22 -0
- data/lib/demo_tape/themes/dot_gov.json +22 -0
- data/lib/demo_tape/themes/dracula.json +22 -0
- data/lib/demo_tape/themes/dracula_plus.json +21 -0
- data/lib/demo_tape/themes/duckbones.json +22 -0
- data/lib/demo_tape/themes/duotone_dark.json +22 -0
- data/lib/demo_tape/themes/earthsong.json +22 -0
- data/lib/demo_tape/themes/elemental.json +22 -0
- data/lib/demo_tape/themes/elementary.json +22 -0
- data/lib/demo_tape/themes/encom.json +22 -0
- data/lib/demo_tape/themes/espresso.json +22 -0
- data/lib/demo_tape/themes/espresso_libre.json +22 -0
- data/lib/demo_tape/themes/everblush.json +22 -0
- data/lib/demo_tape/themes/fahrenheit.json +22 -0
- data/lib/demo_tape/themes/fairyfloss.json +22 -0
- data/lib/demo_tape/themes/farmhouse_dark.json +22 -0
- data/lib/demo_tape/themes/farmhouse_light.json +22 -0
- data/lib/demo_tape/themes/fideloper.json +22 -0
- data/lib/demo_tape/themes/firefly_traditional.json +22 -0
- data/lib/demo_tape/themes/firefox_dev.json +22 -0
- data/lib/demo_tape/themes/firewatch.json +22 -0
- data/lib/demo_tape/themes/fish_tank.json +22 -0
- data/lib/demo_tape/themes/flat.json +22 -0
- data/lib/demo_tape/themes/flatland.json +22 -0
- data/lib/demo_tape/themes/flexoki_dark.json +22 -0
- data/lib/demo_tape/themes/flexoki_light.json +22 -0
- data/lib/demo_tape/themes/floraverse.json +22 -0
- data/lib/demo_tape/themes/forest_blue.json +22 -0
- data/lib/demo_tape/themes/framer.json +22 -0
- data/lib/demo_tape/themes/front_end_delight.json +22 -0
- data/lib/demo_tape/themes/fun_forrest.json +22 -0
- data/lib/demo_tape/themes/galaxy.json +22 -0
- data/lib/demo_tape/themes/galizur.json +22 -0
- data/lib/demo_tape/themes/ganyu.json +22 -0
- data/lib/demo_tape/themes/git_hub_dark.json +22 -0
- data/lib/demo_tape/themes/github.json +22 -0
- data/lib/demo_tape/themes/glacier.json +22 -0
- data/lib/demo_tape/themes/glorious.json +21 -0
- data/lib/demo_tape/themes/grape.json +22 -0
- data/lib/demo_tape/themes/grass.json +22 -0
- data/lib/demo_tape/themes/grey_green.json +22 -0
- data/lib/demo_tape/themes/gruvbox_dark.json +22 -0
- data/lib/demo_tape/themes/gruvbox_dark_hard.json +22 -0
- data/lib/demo_tape/themes/gruvbox_light.json +22 -0
- data/lib/demo_tape/themes/guezwhoz.json +22 -0
- data/lib/demo_tape/themes/h4rithd.json +22 -0
- data/lib/demo_tape/themes/h4rithd_com.json +22 -0
- data/lib/demo_tape/themes/ha_x0_r_blue.json +22 -0
- data/lib/demo_tape/themes/ha_x0_r_gr33_n.json +22 -0
- data/lib/demo_tape/themes/ha_x0_r_r3_d.json +22 -0
- data/lib/demo_tape/themes/hacktober.json +22 -0
- data/lib/demo_tape/themes/hardcore.json +22 -0
- data/lib/demo_tape/themes/harper.json +22 -0
- data/lib/demo_tape/themes/highway.json +22 -0
- data/lib/demo_tape/themes/hipster_green.json +22 -0
- data/lib/demo_tape/themes/hivacruz.json +22 -0
- data/lib/demo_tape/themes/homebrew.json +22 -0
- data/lib/demo_tape/themes/hopscotch.json +22 -0
- data/lib/demo_tape/themes/hopscotch_256.json +22 -0
- data/lib/demo_tape/themes/horizon.json +21 -0
- data/lib/demo_tape/themes/hurtado.json +22 -0
- data/lib/demo_tape/themes/hybrid.json +22 -0
- data/lib/demo_tape/themes/hyper.json +22 -0
- data/lib/demo_tape/themes/ic_green_ppl.json +22 -0
- data/lib/demo_tape/themes/ic_orange_ppl.json +22 -0
- data/lib/demo_tape/themes/iceberg_dark.json +22 -0
- data/lib/demo_tape/themes/iceberg_light.json +22 -0
- data/lib/demo_tape/themes/idea.json +22 -0
- data/lib/demo_tape/themes/idle_toes.json +22 -0
- data/lib/demo_tape/themes/ir_black.json +22 -0
- data/lib/demo_tape/themes/iterm2_dark_background.json +22 -0
- data/lib/demo_tape/themes/iterm2_default.json +22 -0
- data/lib/demo_tape/themes/iterm2_light_background.json +22 -0
- data/lib/demo_tape/themes/iterm2_pastel_dark_background.json +22 -0
- data/lib/demo_tape/themes/iterm2_smoooooth.json +22 -0
- data/lib/demo_tape/themes/iterm2_solarized_dark.json +22 -0
- data/lib/demo_tape/themes/iterm2_solarized_light.json +22 -0
- data/lib/demo_tape/themes/iterm2_tango_dark.json +22 -0
- data/lib/demo_tape/themes/iterm2_tango_light.json +22 -0
- data/lib/demo_tape/themes/jackie_brown.json +22 -0
- data/lib/demo_tape/themes/japanesque.json +22 -0
- data/lib/demo_tape/themes/jellybeans.json +22 -0
- data/lib/demo_tape/themes/jet_brains_darcula.json +22 -0
- data/lib/demo_tape/themes/jubi.json +22 -0
- data/lib/demo_tape/themes/juicy_colors.json +22 -0
- data/lib/demo_tape/themes/kanagawa.json +22 -0
- data/lib/demo_tape/themes/kanagawabones.json +22 -0
- data/lib/demo_tape/themes/kibble.json +22 -0
- data/lib/demo_tape/themes/kolorit.json +22 -0
- data/lib/demo_tape/themes/konsolas.json +22 -0
- data/lib/demo_tape/themes/lab_fox.json +22 -0
- data/lib/demo_tape/themes/laser.json +22 -0
- data/lib/demo_tape/themes/later_this_evening.json +22 -0
- data/lib/demo_tape/themes/lavandula.json +22 -0
- data/lib/demo_tape/themes/liquid_carbon.json +22 -0
- data/lib/demo_tape/themes/liquid_carbon_transparent.json +22 -0
- data/lib/demo_tape/themes/liquid_carbon_transparent_inverse.json +22 -0
- data/lib/demo_tape/themes/lovelace.json +22 -0
- data/lib/demo_tape/themes/man_page.json +22 -0
- data/lib/demo_tape/themes/mariana.json +22 -0
- data/lib/demo_tape/themes/material.json +22 -0
- data/lib/demo_tape/themes/material_dark.json +22 -0
- data/lib/demo_tape/themes/material_darker.json +22 -0
- data/lib/demo_tape/themes/material_design_colors.json +22 -0
- data/lib/demo_tape/themes/material_ocean.json +22 -0
- data/lib/demo_tape/themes/mathias.json +22 -0
- data/lib/demo_tape/themes/matrix.json +22 -0
- data/lib/demo_tape/themes/medallion.json +22 -0
- data/lib/demo_tape/themes/mellifluous.json +22 -0
- data/lib/demo_tape/themes/midnight_in_mojave.json +22 -0
- data/lib/demo_tape/themes/mirage.json +22 -0
- data/lib/demo_tape/themes/misterioso.json +22 -0
- data/lib/demo_tape/themes/molokai.json +22 -0
- data/lib/demo_tape/themes/mona_lisa.json +22 -0
- data/lib/demo_tape/themes/monokai_cmder.json +22 -0
- data/lib/demo_tape/themes/monokai_pro.json +22 -0
- data/lib/demo_tape/themes/monokai_pro_filter_octagon.json +21 -0
- data/lib/demo_tape/themes/monokai_pro_filter_ristretto.json +22 -0
- data/lib/demo_tape/themes/monokai_remastered.json +22 -0
- data/lib/demo_tape/themes/monokai_soda.json +22 -0
- data/lib/demo_tape/themes/monokai_vivid.json +22 -0
- data/lib/demo_tape/themes/moonlight_ii.json +21 -0
- data/lib/demo_tape/themes/n0tch2k.json +22 -0
- data/lib/demo_tape/themes/neobones_dark.json +22 -0
- data/lib/demo_tape/themes/neobones_light.json +22 -0
- data/lib/demo_tape/themes/neon.json +22 -0
- data/lib/demo_tape/themes/neopolitan.json +22 -0
- data/lib/demo_tape/themes/neutron.json +22 -0
- data/lib/demo_tape/themes/night_city.json +22 -0
- data/lib/demo_tape/themes/night_lion_v1.json +22 -0
- data/lib/demo_tape/themes/night_lion_v2.json +22 -0
- data/lib/demo_tape/themes/night_owlish_light.json +22 -0
- data/lib/demo_tape/themes/nightfox.json +22 -0
- data/lib/demo_tape/themes/niji.json +22 -0
- data/lib/demo_tape/themes/nocturnal_winter.json +22 -0
- data/lib/demo_tape/themes/nord.json +22 -0
- data/lib/demo_tape/themes/nord_light.json +22 -0
- data/lib/demo_tape/themes/novel.json +22 -0
- data/lib/demo_tape/themes/nvim_dark.json +22 -0
- data/lib/demo_tape/themes/nvim_light.json +22 -0
- data/lib/demo_tape/themes/obsidian.json +22 -0
- data/lib/demo_tape/themes/ocean.json +22 -0
- data/lib/demo_tape/themes/oceanic_material.json +22 -0
- data/lib/demo_tape/themes/oceanic_next.json +22 -0
- data/lib/demo_tape/themes/ollie.json +22 -0
- data/lib/demo_tape/themes/one_dark.json +21 -0
- data/lib/demo_tape/themes/one_half_dark.json +22 -0
- data/lib/demo_tape/themes/one_half_light.json +22 -0
- data/lib/demo_tape/themes/one_star.json +21 -0
- data/lib/demo_tape/themes/operator_mono_dark.json +22 -0
- data/lib/demo_tape/themes/overnight_slumber.json +22 -0
- data/lib/demo_tape/themes/pale_night_hc.json +22 -0
- data/lib/demo_tape/themes/pandora.json +22 -0
- data/lib/demo_tape/themes/paraiso_dark.json +22 -0
- data/lib/demo_tape/themes/paul_millr.json +22 -0
- data/lib/demo_tape/themes/pencil_dark.json +22 -0
- data/lib/demo_tape/themes/pencil_light.json +22 -0
- data/lib/demo_tape/themes/peppermint.json +22 -0
- data/lib/demo_tape/themes/piatto_light.json +22 -0
- data/lib/demo_tape/themes/pnevma.json +22 -0
- data/lib/demo_tape/themes/popping_and_locking.json +22 -0
- data/lib/demo_tape/themes/primary.json +22 -0
- data/lib/demo_tape/themes/primer.json +21 -0
- data/lib/demo_tape/themes/pro.json +22 -0
- data/lib/demo_tape/themes/pro_light.json +22 -0
- data/lib/demo_tape/themes/purple_rain.json +22 -0
- data/lib/demo_tape/themes/purplepeter.json +22 -0
- data/lib/demo_tape/themes/qb64_super_dark_blue.json +22 -0
- data/lib/demo_tape/themes/rapture.json +22 -0
- data/lib/demo_tape/themes/raycast_dark.json +22 -0
- data/lib/demo_tape/themes/raycast_light.json +22 -0
- data/lib/demo_tape/themes/rebecca.json +22 -0
- data/lib/demo_tape/themes/red_alert.json +22 -0
- data/lib/demo_tape/themes/red_planet.json +22 -0
- data/lib/demo_tape/themes/red_sands.json +22 -0
- data/lib/demo_tape/themes/relaxed.json +22 -0
- data/lib/demo_tape/themes/retro.json +22 -0
- data/lib/demo_tape/themes/retrowave.json +21 -0
- data/lib/demo_tape/themes/rippedcasts.json +22 -0
- data/lib/demo_tape/themes/rose_pine.json +22 -0
- data/lib/demo_tape/themes/rose_pine_dawn.json +22 -0
- data/lib/demo_tape/themes/rose_pine_moon.json +22 -0
- data/lib/demo_tape/themes/rouge_2.json +22 -0
- data/lib/demo_tape/themes/royal.json +22 -0
- data/lib/demo_tape/themes/ryuuko.json +22 -0
- data/lib/demo_tape/themes/sakura.json +22 -0
- data/lib/demo_tape/themes/scarlet_protocol.json +22 -0
- data/lib/demo_tape/themes/sea_shells.json +22 -0
- data/lib/demo_tape/themes/seafoam_pastel.json +22 -0
- data/lib/demo_tape/themes/seoulbones_dark.json +22 -0
- data/lib/demo_tape/themes/seoulbones_light.json +22 -0
- data/lib/demo_tape/themes/serendipity_midnight.json +22 -0
- data/lib/demo_tape/themes/serendipity_morning.json +22 -0
- data/lib/demo_tape/themes/serendipity_sunset.json +22 -0
- data/lib/demo_tape/themes/seti.json +22 -0
- data/lib/demo_tape/themes/shades_of_purple.json +22 -0
- data/lib/demo_tape/themes/shaman.json +22 -0
- data/lib/demo_tape/themes/slate.json +22 -0
- data/lib/demo_tape/themes/sleepy_hollow.json +22 -0
- data/lib/demo_tape/themes/smyck.json +22 -0
- data/lib/demo_tape/themes/snazzy.json +22 -0
- data/lib/demo_tape/themes/soft_server.json +22 -0
- data/lib/demo_tape/themes/solarized_darcula.json +22 -0
- data/lib/demo_tape/themes/solarized_dark_higher_contrast.json +22 -0
- data/lib/demo_tape/themes/solarized_dark_patched.json +22 -0
- data/lib/demo_tape/themes/sonoran_gothic.json +21 -0
- data/lib/demo_tape/themes/sonoran_sunrise.json +22 -0
- data/lib/demo_tape/themes/space_gray.json +22 -0
- data/lib/demo_tape/themes/space_gray_eighties.json +22 -0
- data/lib/demo_tape/themes/space_gray_eighties_dull.json +22 -0
- data/lib/demo_tape/themes/spacedust.json +22 -0
- data/lib/demo_tape/themes/spiderman.json +22 -0
- data/lib/demo_tape/themes/spring.json +22 -0
- data/lib/demo_tape/themes/square.json +22 -0
- data/lib/demo_tape/themes/sublette.json +22 -0
- data/lib/demo_tape/themes/subliminal.json +22 -0
- data/lib/demo_tape/themes/sundried.json +22 -0
- data/lib/demo_tape/themes/symfonic.json +22 -0
- data/lib/demo_tape/themes/synthwave.json +22 -0
- data/lib/demo_tape/themes/synthwave_alpha.json +22 -0
- data/lib/demo_tape/themes/synthwave_everything.json +22 -0
- data/lib/demo_tape/themes/tango_adapted.json +22 -0
- data/lib/demo_tape/themes/tango_half_adapted.json +22 -0
- data/lib/demo_tape/themes/teerb.json +22 -0
- data/lib/demo_tape/themes/terafox.json +22 -0
- data/lib/demo_tape/themes/terminal_basic.json +22 -0
- data/lib/demo_tape/themes/thayer_bright.json +22 -0
- data/lib/demo_tape/themes/the_hulk.json +22 -0
- data/lib/demo_tape/themes/tinacious_design_dark.json +22 -0
- data/lib/demo_tape/themes/tinacious_design_light.json +22 -0
- data/lib/demo_tape/themes/tokyo_night.json +21 -0
- data/lib/demo_tape/themes/tokyo_night_light.json +21 -0
- data/lib/demo_tape/themes/tokyo_night_storm.json +21 -0
- data/lib/demo_tape/themes/tokyonight.json +22 -0
- data/lib/demo_tape/themes/tokyonight_day.json +22 -0
- data/lib/demo_tape/themes/tokyonight_storm.json +22 -0
- data/lib/demo_tape/themes/tomorrow.json +22 -0
- data/lib/demo_tape/themes/tomorrow_night.json +22 -0
- data/lib/demo_tape/themes/tomorrow_night_blue.json +22 -0
- data/lib/demo_tape/themes/tomorrow_night_bright.json +22 -0
- data/lib/demo_tape/themes/tomorrow_night_burns.json +22 -0
- data/lib/demo_tape/themes/tomorrow_night_eighties.json +22 -0
- data/lib/demo_tape/themes/toy_chest.json +22 -0
- data/lib/demo_tape/themes/treehouse.json +22 -0
- data/lib/demo_tape/themes/twilight.json +22 -0
- data/lib/demo_tape/themes/ubuntu.json +22 -0
- data/lib/demo_tape/themes/ultra_dark.json +22 -0
- data/lib/demo_tape/themes/ultra_violent.json +22 -0
- data/lib/demo_tape/themes/under_the_sea.json +22 -0
- data/lib/demo_tape/themes/unholy.json +22 -0
- data/lib/demo_tape/themes/unikitty.json +22 -0
- data/lib/demo_tape/themes/urple.json +22 -0
- data/lib/demo_tape/themes/vaughn.json +22 -0
- data/lib/demo_tape/themes/vesper.json +22 -0
- data/lib/demo_tape/themes/vibrant_ink.json +22 -0
- data/lib/demo_tape/themes/vimbones.json +22 -0
- data/lib/demo_tape/themes/violet_dark.json +22 -0
- data/lib/demo_tape/themes/violet_light.json +22 -0
- data/lib/demo_tape/themes/warm_neon.json +22 -0
- data/lib/demo_tape/themes/wez.json +22 -0
- data/lib/demo_tape/themes/whimsy.json +22 -0
- data/lib/demo_tape/themes/wild_cherry.json +22 -0
- data/lib/demo_tape/themes/wilmersdorf.json +22 -0
- data/lib/demo_tape/themes/wombat.json +22 -0
- data/lib/demo_tape/themes/wryan.json +22 -0
- data/lib/demo_tape/themes/zenbones.json +22 -0
- data/lib/demo_tape/themes/zenbones_dark.json +22 -0
- data/lib/demo_tape/themes/zenbones_light.json +22 -0
- data/lib/demo_tape/themes/zenburn.json +22 -0
- data/lib/demo_tape/themes/zenburned.json +22 -0
- data/lib/demo_tape/themes/zenwritten_dark.json +22 -0
- data/lib/demo_tape/themes/zenwritten_light.json +22 -0
- data/lib/demo_tape/themes/zeonica.json +22 -0
- data/lib/demo_tape/token.rb +24 -0
- data/lib/demo_tape/ttyd.rb +74 -0
- data/lib/demo_tape/version.rb +5 -0
- data/lib/demo_tape.rb +30 -0
- data/lib/demotape.rb +3 -0
- metadata +1209 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scope": "source.demotape",
|
|
3
|
+
"completions": [
|
|
4
|
+
// Commands with string arguments
|
|
5
|
+
{ "trigger": "Type", "contents": "Type \"${1:text}\"" },
|
|
6
|
+
{ "trigger": "Type@", "contents": "Type@${1:50ms} \"${2:text}\"" },
|
|
7
|
+
{ "trigger": "TypeFile", "contents": "TypeFile \"${1:path/to/file}\"" },
|
|
8
|
+
{ "trigger": "TypeFile@", "contents": "TypeFile@${1:50ms} \"${2:path/to/file}\"" },
|
|
9
|
+
{ "trigger": "Copy", "contents": "Copy \"${1:text}\"" },
|
|
10
|
+
{ "trigger": "Paste", "contents": "Paste \"${1:text}\"" },
|
|
11
|
+
{ "trigger": "Send", "contents": "Send \"${1:text}\"" },
|
|
12
|
+
{ "trigger": "Include", "contents": "Include \"${1:file.tape}\"" },
|
|
13
|
+
{ "trigger": "Screenshot", "contents": "Screenshot \"${1:output.png}\"" },
|
|
14
|
+
{ "trigger": "Require", "contents": "Require \"${1:file}\"" },
|
|
15
|
+
|
|
16
|
+
// Output command
|
|
17
|
+
{ "trigger": "Output", "contents": "Output \"${1:output.gif}\"" },
|
|
18
|
+
|
|
19
|
+
// Wait commands
|
|
20
|
+
{ "trigger": "Wait", "contents": "Wait ${1:1s}" },
|
|
21
|
+
{ "trigger": "Sleep", "contents": "Sleep ${1:1s}" },
|
|
22
|
+
{ "trigger": "WaitUntil", "contents": "WaitUntil /${1:pattern}/" },
|
|
23
|
+
{ "trigger": "WaitUntil@", "contents": "WaitUntil@${1:5s} /${2:pattern}/" },
|
|
24
|
+
|
|
25
|
+
// Control commands
|
|
26
|
+
"Clear",
|
|
27
|
+
"Pause",
|
|
28
|
+
"Resume",
|
|
29
|
+
|
|
30
|
+
// Set commands
|
|
31
|
+
{ "trigger": "Set shell", "contents": "Set shell \"${1:zsh}\"" },
|
|
32
|
+
{ "trigger": "Set theme", "contents": "Set theme \"${1:dark_theme}\"" },
|
|
33
|
+
{ "trigger": "Set width", "contents": "Set width ${1:1200}" },
|
|
34
|
+
{ "trigger": "Set height", "contents": "Set height ${1:600}" },
|
|
35
|
+
{ "trigger": "Set font_size", "contents": "Set font_size ${1:14}" },
|
|
36
|
+
{
|
|
37
|
+
"trigger": "Set font_family",
|
|
38
|
+
"contents": "Set font_family \"${1:Monaco}\"",
|
|
39
|
+
},
|
|
40
|
+
{ "trigger": "Set line_height", "contents": "Set line_height ${1:1.2}" },
|
|
41
|
+
{ "trigger": "Set cursor_blink", "contents": "Set cursor_blink ${1:true}" },
|
|
42
|
+
{ "trigger": "Set cursor_width", "contents": "Set cursor_width ${1:2}" },
|
|
43
|
+
{
|
|
44
|
+
"trigger": "Set cursor_style",
|
|
45
|
+
"contents": "Set cursor_style \"${1:block}\"",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"trigger": "Set letter_spacing",
|
|
49
|
+
"contents": "Set letter_spacing ${1:0}",
|
|
50
|
+
},
|
|
51
|
+
{ "trigger": "Set padding", "contents": "Set padding ${1:20}" },
|
|
52
|
+
{ "trigger": "Set margin", "contents": "Set margin ${1:60}" },
|
|
53
|
+
{ "trigger": "Set margin_fill", "contents": "Set margin_fill \"${1:#6b50ff}\"" },
|
|
54
|
+
{ "trigger": "Set border_radius", "contents": "Set border_radius ${1:10}" },
|
|
55
|
+
{ "trigger": "Set typing_speed", "contents": "Set typing_speed ${1:50ms}" },
|
|
56
|
+
{ "trigger": "Set variable_typing", "contents": "Set variable_typing ${1:true}" },
|
|
57
|
+
{ "trigger": "Set loop", "contents": "Set loop ${1:true}" },
|
|
58
|
+
{ "trigger": "Set loop_delay", "contents": "Set loop_delay ${1:2s}" },
|
|
59
|
+
|
|
60
|
+
// Theme color overrides
|
|
61
|
+
{ "trigger": "Set theme.background", "contents": "Set theme.background \"${1:#222222}\"" },
|
|
62
|
+
{ "trigger": "Set theme.foreground", "contents": "Set theme.foreground \"${1:#ffffff}\"" },
|
|
63
|
+
{ "trigger": "Set theme.cursor", "contents": "Set theme.cursor \"${1:#00ff00}\"" },
|
|
64
|
+
{ "trigger": "Set theme.selection_background", "contents": "Set theme.selection_background \"${1:#444444}\"" },
|
|
65
|
+
{ "trigger": "Set theme.black", "contents": "Set theme.black \"${1:#000000}\"" },
|
|
66
|
+
{ "trigger": "Set theme.red", "contents": "Set theme.red \"${1:#ff0000}\"" },
|
|
67
|
+
{ "trigger": "Set theme.green", "contents": "Set theme.green \"${1:#00ff00}\"" },
|
|
68
|
+
{ "trigger": "Set theme.yellow", "contents": "Set theme.yellow \"${1:#ffff00}\"" },
|
|
69
|
+
{ "trigger": "Set theme.blue", "contents": "Set theme.blue \"${1:#0000ff}\"" },
|
|
70
|
+
{ "trigger": "Set theme.magenta", "contents": "Set theme.magenta \"${1:#ff00ff}\"" },
|
|
71
|
+
{ "trigger": "Set theme.cyan", "contents": "Set theme.cyan \"${1:#00ffff}\"" },
|
|
72
|
+
{ "trigger": "Set theme.white", "contents": "Set theme.white \"${1:#ffffff}\"" },
|
|
73
|
+
{ "trigger": "Set theme.bright_black", "contents": "Set theme.bright_black \"${1:#555555}\"" },
|
|
74
|
+
{ "trigger": "Set theme.bright_red", "contents": "Set theme.bright_red \"${1:#ff5555}\"" },
|
|
75
|
+
{ "trigger": "Set theme.bright_green", "contents": "Set theme.bright_green \"${1:#55ff55}\"" },
|
|
76
|
+
{ "trigger": "Set theme.bright_yellow", "contents": "Set theme.bright_yellow \"${1:#ffff55}\"" },
|
|
77
|
+
{ "trigger": "Set theme.bright_blue", "contents": "Set theme.bright_blue \"${1:#5555ff}\"" },
|
|
78
|
+
{ "trigger": "Set theme.bright_magenta", "contents": "Set theme.bright_magenta \"${1:#ff55ff}\"" },
|
|
79
|
+
{ "trigger": "Set theme.bright_cyan", "contents": "Set theme.bright_cyan \"${1:#55ffff}\"" },
|
|
80
|
+
{ "trigger": "Set theme.bright_white", "contents": "Set theme.bright_white \"${1:#ffffff}\"" },
|
|
81
|
+
|
|
82
|
+
// Special keys
|
|
83
|
+
"Enter",
|
|
84
|
+
"Return",
|
|
85
|
+
"Tab",
|
|
86
|
+
"Backspace",
|
|
87
|
+
"Delete",
|
|
88
|
+
"Escape",
|
|
89
|
+
"Space",
|
|
90
|
+
|
|
91
|
+
// Arrow keys
|
|
92
|
+
"Up",
|
|
93
|
+
"Down",
|
|
94
|
+
"Left",
|
|
95
|
+
"Right",
|
|
96
|
+
|
|
97
|
+
// Navigation keys
|
|
98
|
+
"Home",
|
|
99
|
+
"End",
|
|
100
|
+
"PageUp",
|
|
101
|
+
"PageDown",
|
|
102
|
+
"Insert",
|
|
103
|
+
|
|
104
|
+
// Function keys
|
|
105
|
+
"F1",
|
|
106
|
+
"F2",
|
|
107
|
+
"F3",
|
|
108
|
+
"F4",
|
|
109
|
+
"F5",
|
|
110
|
+
"F6",
|
|
111
|
+
"F7",
|
|
112
|
+
"F8",
|
|
113
|
+
"F9",
|
|
114
|
+
"F10",
|
|
115
|
+
"F11",
|
|
116
|
+
"F12",
|
|
117
|
+
|
|
118
|
+
// Modifiers
|
|
119
|
+
"Ctrl",
|
|
120
|
+
"Control",
|
|
121
|
+
"Alt",
|
|
122
|
+
"Option",
|
|
123
|
+
"Shift",
|
|
124
|
+
"Meta",
|
|
125
|
+
"Command",
|
|
126
|
+
|
|
127
|
+
// Key combinations
|
|
128
|
+
{ "trigger": "Ctrl+", "contents": "Ctrl+${1:C}" },
|
|
129
|
+
{ "trigger": "Alt+", "contents": "Alt+${1:Tab}" },
|
|
130
|
+
{ "trigger": "Shift+", "contents": "Shift+${1:Enter}" },
|
|
131
|
+
{ "trigger": "Command+", "contents": "Command+${1:C}" },
|
|
132
|
+
{ "trigger": "Meta+", "contents": "Meta+${1:C}" },
|
|
133
|
+
|
|
134
|
+
// Duration formats
|
|
135
|
+
{ "trigger": "ms", "contents": "${1:100}ms" },
|
|
136
|
+
{ "trigger": "s", "contents": "${1:1}s" },
|
|
137
|
+
{ "trigger": "m", "contents": "${1:1}m" },
|
|
138
|
+
{ "trigger": "h", "contents": "${1:1}h" },
|
|
139
|
+
],
|
|
140
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
%YAML 1.2
|
|
2
|
+
---
|
|
3
|
+
name: DemoTape
|
|
4
|
+
file_extensions:
|
|
5
|
+
- tape
|
|
6
|
+
scope: source.demotape
|
|
7
|
+
|
|
8
|
+
variables:
|
|
9
|
+
line_comment: "#"
|
|
10
|
+
|
|
11
|
+
contexts:
|
|
12
|
+
main:
|
|
13
|
+
- include: comments
|
|
14
|
+
- include: commands
|
|
15
|
+
|
|
16
|
+
comments:
|
|
17
|
+
- match: "#.*$"
|
|
18
|
+
scope: comment.line.number-sign.demotape
|
|
19
|
+
|
|
20
|
+
commands:
|
|
21
|
+
# Commands with @ duration/speed
|
|
22
|
+
- match: '\b(Type|TypeFile|WaitUntil)\b'
|
|
23
|
+
scope: keyword.control.demotape
|
|
24
|
+
push: command_with_speed_or_timeout
|
|
25
|
+
|
|
26
|
+
# Set command with option value
|
|
27
|
+
- match: '\b(Set)\b'
|
|
28
|
+
scope: keyword.control.demotape
|
|
29
|
+
push: set_command
|
|
30
|
+
|
|
31
|
+
# Output command
|
|
32
|
+
- match: '\b(Output)\b'
|
|
33
|
+
scope: keyword.control.demotape
|
|
34
|
+
push: output_command
|
|
35
|
+
|
|
36
|
+
# Commands with string argument
|
|
37
|
+
- match: '\b(Copy|Paste|Send|Include|Screenshot|TypeFile)\b'
|
|
38
|
+
scope: keyword.control.demotape
|
|
39
|
+
push: string_argument
|
|
40
|
+
|
|
41
|
+
# Commands with duration argument
|
|
42
|
+
- match: '\b(Wait|Sleep)\b'
|
|
43
|
+
scope: keyword.control.demotape
|
|
44
|
+
push: duration_argument
|
|
45
|
+
|
|
46
|
+
# Commands with regex argument
|
|
47
|
+
- match: '\b(WaitUntil)\b(?!\s*@)'
|
|
48
|
+
scope: keyword.control.demotape
|
|
49
|
+
push: regex_argument
|
|
50
|
+
|
|
51
|
+
# Meta commands
|
|
52
|
+
- match: '\b(Require)\b'
|
|
53
|
+
scope: keyword.control.demotape
|
|
54
|
+
push: identifier_argument
|
|
55
|
+
|
|
56
|
+
# Control commands (no arguments)
|
|
57
|
+
- match: '\b(Pause|Resume|Clear)\b'
|
|
58
|
+
scope: keyword.control.demotape
|
|
59
|
+
|
|
60
|
+
# Key combinations and individual keys
|
|
61
|
+
- match: '\b(Enter|Return|Tab|Backspace|Delete|Escape|Esc|Space|Up|Down|Left|Right|Home|End|PageUp|PageDown|Insert|Cancel|Help|Pause|Semicolon|Colon|Equals|Slash|BackSlash|Numpad[0-9]|Multiply|Add|Separator|Subtract|Decimal|Divide|F[1-9]|F1[0-2])\b'
|
|
62
|
+
scope: keyword.control.demotape
|
|
63
|
+
push: possible_key_count
|
|
64
|
+
|
|
65
|
+
# Modifiers
|
|
66
|
+
- match: '\b(Ctrl|Control|Alt|Option|Shift|Meta|Command)\b'
|
|
67
|
+
scope: keyword.control.demotape
|
|
68
|
+
push: key_combo
|
|
69
|
+
|
|
70
|
+
# Letters and numbers as keys
|
|
71
|
+
- match: '\b[A-Za-z]\b(?=\s*\+|\s*$|\s*\d+\s*$)'
|
|
72
|
+
scope: keyword.control.demotape
|
|
73
|
+
push: possible_key_combo
|
|
74
|
+
|
|
75
|
+
key_combo:
|
|
76
|
+
- match: '\+'
|
|
77
|
+
scope: keyword.operator.demotape
|
|
78
|
+
- match: '\b(Ctrl|Control|Alt|Option|Shift|Meta|Command|Enter|Return|Tab|Backspace|Delete|Escape|Esc|Space|Up|Down|Left|Right|Home|End|PageUp|PageDown|Insert|Cancel|Help|Pause|Semicolon|Colon|Equals|Slash|BackSlash|Numpad[0-9]|Multiply|Add|Separator|Subtract|Decimal|Divide|F[1-9]|F1[0-2]|[A-Za-z0-9])\b'
|
|
79
|
+
scope: keyword.control.demotape
|
|
80
|
+
- match: '\d+'
|
|
81
|
+
scope: constant.numeric.integer.demotape
|
|
82
|
+
pop: true
|
|
83
|
+
- match: "$"
|
|
84
|
+
pop: true
|
|
85
|
+
- match: '(?=\S)'
|
|
86
|
+
pop: true
|
|
87
|
+
|
|
88
|
+
possible_key_combo:
|
|
89
|
+
- match: '\+'
|
|
90
|
+
scope: keyword.operator.demotape
|
|
91
|
+
set: key_combo
|
|
92
|
+
- match: '\d+'
|
|
93
|
+
scope: constant.numeric.integer.demotape
|
|
94
|
+
pop: true
|
|
95
|
+
- match: "$"
|
|
96
|
+
pop: true
|
|
97
|
+
- match: '(?=\S)'
|
|
98
|
+
pop: true
|
|
99
|
+
|
|
100
|
+
possible_key_count:
|
|
101
|
+
- match: "@"
|
|
102
|
+
scope: keyword.operator.demotape
|
|
103
|
+
push: duration_then_count
|
|
104
|
+
- match: '\d+'
|
|
105
|
+
scope: constant.numeric.integer.demotape
|
|
106
|
+
pop: true
|
|
107
|
+
- match: "$"
|
|
108
|
+
pop: true
|
|
109
|
+
- match: '(?=\S)'
|
|
110
|
+
pop: true
|
|
111
|
+
|
|
112
|
+
duration_then_count:
|
|
113
|
+
- include: duration
|
|
114
|
+
- include: numbers
|
|
115
|
+
- match: '\s+'
|
|
116
|
+
scope: text
|
|
117
|
+
- match: "$"
|
|
118
|
+
pop: true
|
|
119
|
+
- match: '(?=\S)'
|
|
120
|
+
pop: true
|
|
121
|
+
|
|
122
|
+
end_of_line:
|
|
123
|
+
- match: "$"
|
|
124
|
+
pop: true
|
|
125
|
+
|
|
126
|
+
command_with_speed_or_timeout:
|
|
127
|
+
- match: "@"
|
|
128
|
+
scope: keyword.operator.demotape
|
|
129
|
+
push: duration_value
|
|
130
|
+
- include: string_argument
|
|
131
|
+
- match: "$"
|
|
132
|
+
pop: true
|
|
133
|
+
|
|
134
|
+
set_command:
|
|
135
|
+
- match: '\b(border_radius|shell|theme|width|height|font_size|font_family|line_height|cursor_blink|cursor_width|cursor_style|letter_spacing|padding|margin|margin_fill|fps|typing_speed|loop|loop_delay|variable_typing)(\.[a-z_]+)?\b'
|
|
136
|
+
captures:
|
|
137
|
+
1: variable.parameter.demotape
|
|
138
|
+
2: variable.other.member.demotape
|
|
139
|
+
push: set_value
|
|
140
|
+
- match: "$"
|
|
141
|
+
pop: true
|
|
142
|
+
|
|
143
|
+
set_value:
|
|
144
|
+
- include: strings
|
|
145
|
+
- include: numbers
|
|
146
|
+
- include: duration
|
|
147
|
+
- match: ","
|
|
148
|
+
scope: punctuation.separator.demotape
|
|
149
|
+
- match: '\b(true|false)\b'
|
|
150
|
+
scope: constant.language.boolean.demotape
|
|
151
|
+
- match: '\b[a-zA-Z_]\w*\b'
|
|
152
|
+
scope: string.unquoted.demotape
|
|
153
|
+
- match: "$"
|
|
154
|
+
pop: true
|
|
155
|
+
|
|
156
|
+
output_command:
|
|
157
|
+
- include: strings
|
|
158
|
+
- match: "$"
|
|
159
|
+
pop: true
|
|
160
|
+
|
|
161
|
+
string_argument:
|
|
162
|
+
- include: strings
|
|
163
|
+
- match: '\S+'
|
|
164
|
+
scope: string.unquoted.demotape
|
|
165
|
+
- match: "$"
|
|
166
|
+
pop: true
|
|
167
|
+
|
|
168
|
+
identifier_argument:
|
|
169
|
+
- include: strings
|
|
170
|
+
- match: '\b[a-zA-Z_]\w*\b'
|
|
171
|
+
scope: entity.name.demotape
|
|
172
|
+
- match: "$"
|
|
173
|
+
pop: true
|
|
174
|
+
|
|
175
|
+
duration_argument:
|
|
176
|
+
- include: duration
|
|
177
|
+
- include: numbers
|
|
178
|
+
- match: "$"
|
|
179
|
+
pop: true
|
|
180
|
+
|
|
181
|
+
regex_argument:
|
|
182
|
+
- match: '/([^/\\]|\\.)*/'
|
|
183
|
+
scope: string.regexp.demotape
|
|
184
|
+
pop: true
|
|
185
|
+
- match: "$"
|
|
186
|
+
pop: true
|
|
187
|
+
|
|
188
|
+
duration_value:
|
|
189
|
+
- match: '(\d+(?:\.\d+)?)(ms|s|m|h)\b'
|
|
190
|
+
captures:
|
|
191
|
+
1: constant.numeric.float.demotape
|
|
192
|
+
2: keyword.other.unit.demotape
|
|
193
|
+
pop: true
|
|
194
|
+
- match: '\d+(?:\.\d+)?'
|
|
195
|
+
scope: constant.numeric.float.demotape
|
|
196
|
+
pop: true
|
|
197
|
+
- match: "$"
|
|
198
|
+
pop: true
|
|
199
|
+
|
|
200
|
+
duration:
|
|
201
|
+
- match: '(\d+(?:\.\d+)?)(ms|s|m|h)\b'
|
|
202
|
+
captures:
|
|
203
|
+
1: constant.numeric.float.demotape
|
|
204
|
+
2: keyword.other.unit.demotape
|
|
205
|
+
|
|
206
|
+
numbers:
|
|
207
|
+
- match: '\d*\.\d+'
|
|
208
|
+
scope: constant.numeric.float.demotape
|
|
209
|
+
- match: '\d+'
|
|
210
|
+
scope: constant.numeric.integer.demotape
|
|
211
|
+
|
|
212
|
+
strings:
|
|
213
|
+
- match: '"""'
|
|
214
|
+
scope: punctuation.definition.string.begin.demotape
|
|
215
|
+
push: triple_quoted_string
|
|
216
|
+
- match: '"'
|
|
217
|
+
scope: punctuation.definition.string.begin.demotape
|
|
218
|
+
push: double_quoted_string
|
|
219
|
+
- match: "'"
|
|
220
|
+
scope: punctuation.definition.string.begin.demotape
|
|
221
|
+
push: single_quoted_string
|
|
222
|
+
|
|
223
|
+
triple_quoted_string:
|
|
224
|
+
- meta_scope: string.quoted.triple.demotape
|
|
225
|
+
- match: '"""'
|
|
226
|
+
scope: punctuation.definition.string.end.demotape
|
|
227
|
+
pop: true
|
|
228
|
+
|
|
229
|
+
double_quoted_string:
|
|
230
|
+
- meta_scope: string.quoted.double.demotape
|
|
231
|
+
- match: '\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[ntr\\"])'
|
|
232
|
+
scope: constant.character.escape.demotape
|
|
233
|
+
- match: '"'
|
|
234
|
+
scope: punctuation.definition.string.end.demotape
|
|
235
|
+
pop: true
|
|
236
|
+
|
|
237
|
+
single_quoted_string:
|
|
238
|
+
- meta_scope: string.quoted.single.demotape
|
|
239
|
+
- match: "\\\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[ntr\\\\'])"
|
|
240
|
+
scope: constant.character.escape.demotape
|
|
241
|
+
- match: "'"
|
|
242
|
+
scope: punctuation.definition.string.end.demotape
|
|
243
|
+
pop: true
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# DemoTape Vim Syntax
|
|
2
|
+
|
|
3
|
+
Syntax highlighting for DemoTape (`.tape`) files in Vim/Neovim.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### Using a Plugin Manager
|
|
8
|
+
|
|
9
|
+
#### vim-plug
|
|
10
|
+
|
|
11
|
+
Add to your `.vimrc` or `init.vim`:
|
|
12
|
+
|
|
13
|
+
```vim
|
|
14
|
+
Plug 'fnando/demotape', {'rtp': 'editors/vim'}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
#### Vundle
|
|
18
|
+
|
|
19
|
+
```vim
|
|
20
|
+
Plugin 'fnando/demotape', {'rtp': 'editors/vim'}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
#### Pathogen
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cd ~/.vim/bundle
|
|
27
|
+
git clone https://github.com/fnando/demotape.git
|
|
28
|
+
ln -s ~/.vim/bundle/demotape/editors/vim ~/.vim/bundle/demotape-vim
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Manual Installation
|
|
32
|
+
|
|
33
|
+
Copy the files to your Vim directory:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# For Vim
|
|
37
|
+
cp -r editors/vim/* ~/.vim/
|
|
38
|
+
|
|
39
|
+
# For Neovim
|
|
40
|
+
cp -r editors/vim/* ~/.config/nvim/
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Features
|
|
44
|
+
|
|
45
|
+
- Syntax highlighting for all DemoTape commands
|
|
46
|
+
- Support for key combinations and special keys
|
|
47
|
+
- String literals (single, double, and triple-quoted multiline)
|
|
48
|
+
- Duration values with time units
|
|
49
|
+
- Regular expressions
|
|
50
|
+
- Comments
|
|
51
|
+
- Set command options
|
|
52
|
+
|
|
53
|
+
## Usage
|
|
54
|
+
|
|
55
|
+
Once installed, any file with a `.tape` extension will automatically use DemoTape syntax highlighting.
|
|
56
|
+
|
|
57
|
+
You can also manually set the filetype:
|
|
58
|
+
|
|
59
|
+
```vim
|
|
60
|
+
:set filetype=demotape
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Configuration
|
|
64
|
+
|
|
65
|
+
You can customize the colors by overriding the highlight groups in your `.vimrc`:
|
|
66
|
+
|
|
67
|
+
```vim
|
|
68
|
+
" Example: Make commands bold
|
|
69
|
+
hi demotapeCommand gui=bold cterm=bold
|
|
70
|
+
|
|
71
|
+
" Example: Custom color for strings
|
|
72
|
+
hi demotapeString guifg=#98c379 ctermfg=114
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Available highlight groups:
|
|
76
|
+
|
|
77
|
+
- `demotapeComment` - Comments
|
|
78
|
+
- `demotapeCommand` - Commands (Type, Sleep, etc.)
|
|
79
|
+
- `demotapeKey` - Special keys (Enter, Tab, etc.)
|
|
80
|
+
- `demotapeModifier` - Modifier keys (Ctrl, Alt, etc.)
|
|
81
|
+
- `demotapeOperator` - Operators (+ and @)
|
|
82
|
+
- `demotapeOption` - Set command options
|
|
83
|
+
- `demotapeString` - String literals
|
|
84
|
+
- `demotapeStringMulti` - Multiline strings
|
|
85
|
+
- `demotapeEscape` - Escape sequences
|
|
86
|
+
- `demotapeRegex` - Regular expressions
|
|
87
|
+
- `demotapeNumber` - Integer numbers
|
|
88
|
+
- `demotapeFloat` - Floating point numbers
|
|
89
|
+
- `demotapeDuration` - Duration values
|
|
90
|
+
- `demotapeBoolean` - Boolean values
|
|
91
|
+
- `demotapeSeparator` - Separators (commas)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
" Vim syntax file
|
|
2
|
+
" Language: DemoTape
|
|
3
|
+
" Maintainer: Nando Vieira
|
|
4
|
+
" Latest Revision: 2024-11-12
|
|
5
|
+
|
|
6
|
+
if exists("b:current_syntax")
|
|
7
|
+
finish
|
|
8
|
+
endif
|
|
9
|
+
|
|
10
|
+
" Comments
|
|
11
|
+
syn match demotapeComment "#.*$"
|
|
12
|
+
|
|
13
|
+
" Commands
|
|
14
|
+
syn keyword demotapeCommand Type TypeFile WaitUntil Set Output Copy Paste Send Include Screenshot
|
|
15
|
+
syn keyword demotapeCommand Wait Sleep Require Pause Resume Clear nextgroup=demotapeString,demotapeDuration,demotapeNumber skipwhite
|
|
16
|
+
|
|
17
|
+
" Special keys
|
|
18
|
+
syn keyword demotapeKey Enter Return Tab Backspace Delete Escape Esc Space
|
|
19
|
+
syn keyword demotapeKey Up Down Left Right Home End PageUp PageDown Insert
|
|
20
|
+
syn keyword demotapeKey Cancel Help Pause Semicolon Colon Equals Slash BackSlash
|
|
21
|
+
syn keyword demotapeKey Multiply Add Separator Subtract Decimal Divide
|
|
22
|
+
syn match demotapeKey "\<Numpad[0-9]\>"
|
|
23
|
+
syn match demotapeKey "\<F\([1-9]\|1[0-2]\)\>"
|
|
24
|
+
|
|
25
|
+
" Modifiers
|
|
26
|
+
syn keyword demotapeModifier Ctrl Control Alt Option Shift Meta Command
|
|
27
|
+
|
|
28
|
+
" Key combination operator
|
|
29
|
+
syn match demotapeOperator "+"
|
|
30
|
+
syn match demotapeOperator "@"
|
|
31
|
+
|
|
32
|
+
" Set options
|
|
33
|
+
syn keyword demotapeOption border_radius shell theme width height font_size font_family
|
|
34
|
+
syn keyword demotapeOption line_height cursor_blink cursor_width cursor_style letter_spacing
|
|
35
|
+
syn keyword demotapeOption padding margin margin_fill fps typing_speed loop loop_delay variable_typing
|
|
36
|
+
syn match demotapeOption "\<\(border_radius\|shell\|theme\|width\|height\|font_size\|font_family\|line_height\|cursor_blink\|cursor_width\|cursor_style\|letter_spacing\|padding\|margin\|margin_fill\|fps\|typing_speed\|loop_delay\|loop\|variable_typing\)\.\w\+\>"
|
|
37
|
+
|
|
38
|
+
" Strings
|
|
39
|
+
syn region demotapeString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=demotapeEscape
|
|
40
|
+
syn region demotapeString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=demotapeEscape
|
|
41
|
+
syn region demotapeStringMulti start=+"""+ end=+"""+ contains=demotapeEscape
|
|
42
|
+
|
|
43
|
+
" String escapes
|
|
44
|
+
syn match demotapeEscape "\\[ntr\\'\"]" contained
|
|
45
|
+
syn match demotapeEscape "\\u[0-9a-fA-F]\{4\}" contained
|
|
46
|
+
syn match demotapeEscape "\\U[0-9a-fA-F]\{8\}" contained
|
|
47
|
+
|
|
48
|
+
" Regular expressions
|
|
49
|
+
syn region demotapeRegex start=+/+ skip=+\\\\\|\\\/+ end=+/+
|
|
50
|
+
|
|
51
|
+
" Numbers
|
|
52
|
+
syn match demotapeNumber "\<\d\+\>"
|
|
53
|
+
syn match demotapeFloat "\<\d\+\.\d\+\>"
|
|
54
|
+
|
|
55
|
+
" Duration with units
|
|
56
|
+
syn match demotapeDuration "\<\d\+\(\.\d\+\)\?\(ms\|s\|m\|h\)\>"
|
|
57
|
+
|
|
58
|
+
" Booleans
|
|
59
|
+
syn keyword demotapeBoolean true false
|
|
60
|
+
|
|
61
|
+
" Separators
|
|
62
|
+
syn match demotapeSeparator ","
|
|
63
|
+
|
|
64
|
+
" Highlight groups
|
|
65
|
+
hi def link demotapeComment Comment
|
|
66
|
+
hi def link demotapeCommand Keyword
|
|
67
|
+
hi def link demotapeKey Function
|
|
68
|
+
hi def link demotapeModifier Special
|
|
69
|
+
hi def link demotapeOperator Operator
|
|
70
|
+
hi def link demotapeOption Identifier
|
|
71
|
+
hi def link demotapeString String
|
|
72
|
+
hi def link demotapeStringMulti String
|
|
73
|
+
hi def link demotapeEscape SpecialChar
|
|
74
|
+
hi def link demotapeRegex String
|
|
75
|
+
hi def link demotapeNumber Number
|
|
76
|
+
hi def link demotapeFloat Float
|
|
77
|
+
hi def link demotapeDuration Number
|
|
78
|
+
hi def link demotapeBoolean Boolean
|
|
79
|
+
hi def link demotapeSeparator Delimiter
|
|
80
|
+
|
|
81
|
+
let b:current_syntax = "demotape"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# DemoTape VSCode Extension
|
|
2
|
+
|
|
3
|
+
Syntax highlighting for DemoTape (`.tape`) files in Visual Studio Code.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Copy this directory to your VSCode extensions folder:
|
|
8
|
+
|
|
9
|
+
- **Windows**: `%USERPROFILE%\.vscode\extensions\demotape`
|
|
10
|
+
- **macOS/Linux**: `~/.vscode/extensions/demotape`
|
|
11
|
+
|
|
12
|
+
Then reload VSCode.
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
- Syntax highlighting for all DemoTape commands
|
|
17
|
+
- Support for key combinations and special keys
|
|
18
|
+
- String literals (single, double, and triple-quoted multiline)
|
|
19
|
+
- Duration values with time units
|
|
20
|
+
- Comments
|
|
21
|
+
- Set command options
|
|
22
|
+
|
|
23
|
+
## Development
|
|
24
|
+
|
|
25
|
+
To test during development:
|
|
26
|
+
|
|
27
|
+
1. Open this folder in VSCode
|
|
28
|
+
2. Press `F5` to launch Extension Development Host
|
|
29
|
+
3. Open any `.tape` file to see syntax highlighting
|