HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/ubuntu/neovim/.deps/build/src/treesitter_vim/test/corpus/let_statement.txt
================================================================================
Let only
================================================================================

let

--------------------------------------------------------------------------------

(script_file
  (let_statement))

================================================================================
Let variable list
================================================================================

let vara varb

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (identifier)))

================================================================================
Let variable scope
================================================================================

let g:

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (scope_dict)))

================================================================================
Let variable all together
================================================================================

let vara g: varb l:

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (scope_dict)
    (identifier)
    (scope_dict)))

================================================================================
Let global
================================================================================

let g:foo = 1

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (integer_literal)))

================================================================================
Let arguments
================================================================================

let a:foo = 1
let a:0 = 30
let a:000 = {}

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (argument
      (identifier))
    (integer_literal))
  (let_statement
    (argument
      (integer_literal))
    (integer_literal))
  (let_statement
    (argument
      (integer_literal))
    (dictionnary)))

================================================================================
Let destructuring
================================================================================

let [a, b; rest] = ["aval", "bval", 1, 2]
let [fleh, b, c] = [1, 2, 3]

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (list_assignment
      (identifier)
      (identifier)
      (identifier))
    (list
      (string_literal)
      (string_literal)
      (integer_literal)
      (integer_literal)))
  (let_statement
    (list_assignment
      (identifier)
      (identifier)
      (identifier))
    (list
      (integer_literal)
      (integer_literal)
      (integer_literal))))

================================================================================
Let local variable
================================================================================

let l:foo = l:bar

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (scoped_identifier
      (scope)
      (identifier))))

================================================================================
Let variable named like scopes
================================================================================

let a = 1
let b = 1
let g = 1
let l = 1
let w = 1
let t = 1
let v = 1

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal))
  (let_statement
    (identifier)
    (integer_literal)))

================================================================================
Let options
================================================================================

let l:efm = &l:errorformat
let l:efm = &g:errorformat
let l:efm = &errorformat
let &path = &path . ',/usr/local/include'
let &l:path = &l:path . ',/usr/local/include'
let &g:path = &g:path . ',/usr/local/include'
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (option
      (scope)
      (option_name)))
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (option
      (scope)
      (option_name)))
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (option
      (option_name)))
  (let_statement
    (option
      (option_name))
    (binary_operation
      (option
        (option_name))
      (string_literal)))
  (let_statement
    (option
      (scope)
      (option_name))
    (binary_operation
      (option
        (scope)
        (option_name))
      (string_literal)))
  (let_statement
    (option
      (scope)
      (option_name))
    (binary_operation
      (option
        (scope)
        (option_name))
      (string_literal)))
  (let_statement
    (option
      (option_name))
    (string_literal)))

================================================================================
Let argument scope
================================================================================

let l:foo = get(a:, 3)

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (scoped_identifier
      (scope)
      (identifier))
    (call_expression
      (identifier)
      (scope_dict)
      (integer_literal))))

================================================================================
Let curly-braces identifier
================================================================================

let foo_{bar}_baz = "text"
let foo_{bar}_baz_{buz} = "text"
let nested_{iden{&opt}}_id = "text"

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier
      (curly_braces_name
        (identifier)))
    (string_literal))
  (let_statement
    (identifier
      (curly_braces_name
        (identifier))
      (curly_braces_name
        (identifier)))
    (string_literal))
  (let_statement
    (identifier
      (curly_braces_name
        (identifier
          (curly_braces_name
            (option
              (option_name))))))
    (string_literal)))

================================================================================
Let heredoc
================================================================================

let var1 =<< END
Sample text 1
    Sample text 2
Sample text 3
END

let data =<< trim DATA
  1 2 3 4
  5 6 7 8
DATA

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (heredoc
      (marker_definition)
      (body)
      (endmarker)))
  (let_statement
    (identifier)
    (heredoc
      (parameter)
      (marker_definition)
      (body)
      (endmarker))))

================================================================================
Let heredoc with comment
================================================================================

let test =<< W " comment
"Hello"
World
W

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (heredoc
      (marker_definition)
      (comment)
      (body)
      (endmarker))))

================================================================================
Let update
================================================================================

let a ..= "foo"

--------------------------------------------------------------------------------

(script_file
  (let_statement
    (identifier)
    (string_literal)))