Class: Rouge::Lexers::Shell

Inherits:
RegexLexer show all
Defined in:
lib/rouge/lexers/shell.rb

Constant Summary collapse

KEYWORDS =
%w(
  if fi else while do done for then return function
  select continue until esac elif in
).join('|')
BUILTINS =
%w(
  alias bg bind break builtin caller cd command compgen
  complete declare dirs disown enable eval exec exit
  export false fc fg getopts hash help history jobs let
  local logout mapfile popd pushd pwd read readonly set
  shift shopt source suspend test time times trap true type
  typeset ulimit umask unalias unset wait

  cat tac nl od base32 base64 fmt pr fold head tail split csplit
  wc sum cksum b2sum md5sum sha1sum sha224sum sha256sum sha384sum
  sha512sum sort shuf uniq comm ptx tsort cut paste join tr expand
  unexpand ls dir vdir dircolors cp dd install mv rm shred link ln
  mkdir mkfifo mknod readlink rmdir unlink chown chgrp chmod touch
  df du stat sync truncate echo printf yes expr tee basename dirname
  pathchk mktemp realpath pwd stty printenv tty id logname whoami
  groups users who date arch nproc uname hostname hostid uptime chcon
  runcon chroot env nice nohup stdbuf timeout kill sleep factor numfmt
  seq tar grep sudo awk sed gzip gunzip
).join('|')

Constants inherited from RegexLexer

RegexLexer::MAX_NULL_SCANS

Constants included from Token::Tokens

Token::Tokens::Num, Token::Tokens::Str

Instance Attribute Summary

Attributes inherited from Rouge::Lexer

#options

Class Method Summary collapse

Methods inherited from RegexLexer

append, #delegate, get_state, #get_state, #goto, #group, #groups, #in_state?, #pop!, prepend, #push, #recurse, replace_state, #reset!, #reset_stack, #stack, start, start_procs, #state, state, #state?, state_definitions, states, #step, #stream_tokens, #token

Methods inherited from Rouge::Lexer

aliases, all, #as_bool, #as_lexer, #as_list, #as_string, #as_token, assert_utf8!, #bool_option, continue_lex, #continue_lex, debug_enabled?, demo, demo_file, desc, detectable?, disable_debug!, enable_debug!, filenames, find, find_fancy, guess, guess_by_filename, guess_by_mimetype, guess_by_source, guesses, #hash_option, #initialize, #lex, lex, #lexer_option, #list_option, lookup_fancy, mimetypes, option, option_docs, #reset!, #stream_tokens, #string_option, tag, #tag, title, #token_option, #with

Methods included from Token::Tokens

token

Constructor Details

This class inherits a constructor from Rouge::Lexer

Class Method Details

.detect?(text) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
# File 'lib/rouge/lexers/shell.rb', line 22

def self.detect?(text)
  return true if text.shebang?(/(ba|z|k)?sh/)
  return true if text.start_with?('#compdef', '#autoload')
end