Mercurial > vim
view src/testdir/test_vim9_class.vim @ 31431:552ca9b4218d v9.0.1048
patch 9.0.1048: with "screenline" in 'culopt' cursorline highlight is wrong
Commit: https://github.com/vim/vim/commit/b7acea1806996a9afb9fb8ebfe571b5181063070
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon Dec 12 13:20:43 2022 +0000
patch 9.0.1048: with "screenline" in 'culopt' cursorline highlight is wrong
Problem: With "screenline" in 'culopt' cursorline highlight is wrong.
Solution: Apply the priority logic also when "screenline is in 'culopt'.
(closes #11696)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 12 Dec 2022 14:30:05 +0100 |
parents | 92afb904fbee |
children | e572ff386670 |
line wrap: on
line source
" Test Vim9 classes source check.vim import './vim9.vim' as v9 def Test_class_basic() var lines =<< trim END class NotWorking endclass END v9.CheckScriptFailure(lines, 'E1316:') lines =<< trim END vim9script class notWorking endclass END v9.CheckScriptFailure(lines, 'E1314:') lines =<< trim END vim9script class Not@working endclass END v9.CheckScriptFailure(lines, 'E1315:') lines =<< trim END vim9script abstract noclass Something endclass END v9.CheckScriptFailure(lines, 'E475:') lines =<< trim END vim9script abstract classy Something endclass END v9.CheckScriptFailure(lines, 'E475:') lines =<< trim END vim9script class Something endcl END v9.CheckScriptFailure(lines, 'E1065:') lines =<< trim END vim9script class Something endclass school's out END v9.CheckScriptFailure(lines, 'E488:') lines =<< trim END vim9script class Something endclass | echo 'done' END v9.CheckScriptFailure(lines, 'E488:') lines =<< trim END vim9script class Something this endclass END v9.CheckScriptFailure(lines, 'E1317:') lines =<< trim END vim9script class Something this. endclass END v9.CheckScriptFailure(lines, 'E1317:') lines =<< trim END vim9script class Something this .count endclass END v9.CheckScriptFailure(lines, 'E1317:') lines =<< trim END vim9script class Something this. count endclass END v9.CheckScriptFailure(lines, 'E1317:') lines =<< trim END vim9script class Something this.count: number that.count endclass END v9.CheckScriptFailure(lines, 'E1318: Not a valid command in a class: that.count') lines =<< trim END vim9script class Something this.count endclass END v9.CheckScriptFailure(lines, 'E1022:') lines =<< trim END vim9script class Something this.count : number endclass END v9.CheckScriptFailure(lines, 'E1059:') lines =<< trim END vim9script class Something this.count:number endclass END v9.CheckScriptFailure(lines, 'E1069:') lines =<< trim END vim9script class TextPosition this.lnum: number this.col: number def ToString(): string return $'({this.lnum}, {this.col})' enddef endclass # use the automatically generated new() method var pos = TextPosition.new(2, 12) assert_equal(2, pos.lnum) assert_equal(12, pos.col) # call an object method assert_equal('(2, 12)', pos.ToString()) END v9.CheckScriptSuccess(lines) enddef def Test_class_member_initializer() var lines =<< trim END vim9script class TextPosition this.lnum: number = 1 this.col: number = 1 def new(lnum: number) this.lnum = lnum enddef endclass var pos = TextPosition.new(3) assert_equal(3, pos.lnum) assert_equal(1, pos.col) var instr = execute('disassemble TextPosition.new') assert_match('new\_s*' .. '0 NEW TextPosition size \d\+\_s*' .. '\d PUSHNR 1\_s*' .. '\d STORE_THIS 0\_s*' .. '\d PUSHNR 1\_s*' .. '\d STORE_THIS 1\_s*' .. 'this.lnum = lnum\_s*' .. '\d LOAD arg\[-1]\_s*' .. '\d PUSHNR 0\_s*' .. '\d LOAD $0\_s*' .. '\d\+ STOREINDEX object\_s*' .. '\d\+ RETURN object.*', instr) END v9.CheckScriptSuccess(lines) enddef " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker