mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
57 lines
1.1 KiB
VimL
57 lines
1.1 KiB
VimL
|
vim9script
|
||
|
# VIM_TEST_SETUP hi link vimMethodName Todo
|
||
|
|
||
|
|
||
|
# Vim |builtin-object-methods| and namesake builtin functions.
|
||
|
class PairClassTest
|
||
|
public const a: any
|
||
|
public const b: any
|
||
|
|
||
|
def new(a: any, b: any)
|
||
|
this.a = a
|
||
|
this.b = b
|
||
|
enddef
|
||
|
|
||
|
def empty(): bool
|
||
|
return false
|
||
|
enddef
|
||
|
def len(): number
|
||
|
return 2
|
||
|
enddef
|
||
|
def string(): string
|
||
|
return printf('(%s, %s)', this.a, this.b)
|
||
|
enddef
|
||
|
endclass
|
||
|
|
||
|
enum MarkerEnumTest
|
||
|
INSTANCE
|
||
|
|
||
|
def NoOp()
|
||
|
enddef
|
||
|
|
||
|
def empty(): bool
|
||
|
return true
|
||
|
enddef
|
||
|
def len(): number
|
||
|
return 0
|
||
|
enddef
|
||
|
def string(): string
|
||
|
return this.name
|
||
|
enddef
|
||
|
endenum
|
||
|
|
||
|
const b1: bool = empty(MarkerEnumTest.INSTANCE)
|
||
|
const n1: number = len(MarkerEnumTest.INSTANCE)
|
||
|
const s1: string = string(MarkerEnumTest.INSTANCE)
|
||
|
echo b1 && MarkerEnumTest.INSTANCE.empty()
|
||
|
echo n1 == 0 && MarkerEnumTest.INSTANCE.len() == 0
|
||
|
echo s1 == 'INSTANCE' && MarkerEnumTest.INSTANCE.string() == 'INSTANCE'
|
||
|
|
||
|
const pair: PairClassTest = PairClassTest.new(0, 1)
|
||
|
const b2: bool = !pair.empty()
|
||
|
const n2: number = pair.len()
|
||
|
const s2: string = pair.string()
|
||
|
echo b2 && !empty(pair)
|
||
|
echo n2 == 2 && len(pair) == 2
|
||
|
echo s2 == '(0, 1)' && string(pair) == '(0, 1)'
|