1
0
forked from aniani/vim
Commit Graph

219 Commits

Author SHA1 Message Date
Yegappan Lakshmanan
92d9ee5f4c patch 9.0.1906: Vim9: Interfaces should not support class methods and variables
Problem:  Vim9: Interfaces should not support class methods and
          variables
Solution: Make sure interface follow the interface specification

Vim9 interface changes to follow the new interface specification:

1) An interface can have only read-only and read-write instance
   variables.
2) An interface can have only public instance methods.
3) An interface cannot have class variables and class methods.
4) An interface cannot have private instance variables and private
   instance methods.
5) A interface can extend another interface using "extends". The
   sub-interface gets all the variables and methods in the super
   interface.

That means:
- Interfaces should not support class methods and variables.
- Adjust error numbers and add additional tests.
- Interface methods can be defined in one of the super classes.
- Interface variables can be defined in one of the super classes.
  and instance variables can be repeated in sub interfaces.
- Check the class variable types with the type in interface.

closes: #13100

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-09-17 17:03:19 +02:00
Christian Brabandt
e5f7cd0a60 patch 9.0.1894: CI: trailing whitespace in tests
Problem:  CI: trailing white space in tests
Solution: clean up the trailing white space

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-09-10 19:26:47 +02:00
Christian Brabandt
983d808674 patch 9.0.1893: CI: strptime test fails on BSD14
Problem:  CI: strptime test fails on BSD14
Solution: Skip the test

Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-09-10 19:06:09 +02:00
Yegappan Lakshmanan
b49ad28d73 patch 9.0.1801: Vim9 instanceof() fails in a def func
Problem:  Vim9 instanceof() fails in a def func
Solution: allow Objects in compile time check

closes: #12907

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-08-27 19:08:40 +02:00
LemonBoy
afe0466fb1 patch 9.0.1786: Vim9: need instanceof() function
Problem:  Vim9: need instanceof() function
Solution: Implement instanceof() builtin

Implemented in the same form as Python's isinstance because it allows
for checking multiple class types at the same time.

closes: #12867

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: LemonBoy <thatlemon@gmail.com>
2023-08-23 21:08:11 +02:00
rhysd
0bbc1be0a3 patch 9.0.1750: CI: fails because of changed error messages
Problem: CI: fails because of changed error messages
         (after: 9.0.1741)
Solution: Adjust expected error messages

closes: #12853

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: rhysd <lin90162@yahoo.co.jp>
2023-08-19 15:42:54 +02:00
zeertzjq
825cf813fa patch 9.0.1728: missing winid argument for virtcol()
Problem: missing winid argument for virtcol()
Solution: Add a {winid} argument to virtcol()

Other functions col(), charcol() and virtcol2col() support a {winid}
argument, so it makes sense for virtcol() to also support than.

Also add test for virtcol2col() with 'showbreak' and {winid}.

closes: #12633

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-08-17 22:55:25 +02:00
Yegappan Lakshmanan
2d8e998544 patch 9.0.1660: error for using matchfuzzy() returning a list of dicts
Problem:    Error for using matchfuzzy() in Vim9 script returning a list of
            dicts.
Solution:   Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan,
            closes #12574)
2023-06-24 16:42:25 +01:00
zeertzjq
4c7cb372c1 patch 9.0.1631: passing wrong variable type to option gives multiple errors
Problem:    Passing a wrong variable type to an option gives multiple errors.
Solution:   Bail out early on failure. (closes #12504)
2023-06-14 16:39:54 +01:00
Yegappan Lakshmanan
577922b917 patch 9.0.1617: charidx() result is not consistent with byteidx()
Problem:    charidx() and utf16idx() result is not consistent with byteidx().
Solution:   When the index is equal to the length of the text return the
            lenght of the text instead of -1. (Yegappan Lakshmanan,
            closes #12503)
2023-06-08 17:09:45 +01:00
Yegappan Lakshmanan
f9dc278946 patch 9.0.1540: reverse() on string doesn't work in compiled function
Problem:    reverse() on string doesn't work in compiled function.
Solution:   Accept string in argument type check. (Yegappan Lakshmanan,
            closes #12377)
2023-05-11 15:02:56 +01:00
Bram Moolenaar
c142d6513e patch 9.0.1382: failing test for strptime() doesn't show returned value
Problem:    Failing test for strptime() doesn't show returned value.
Solution:   Use assert_equal() instead of assert_true().
2023-03-05 19:27:49 +00:00
Bram Moolenaar
32517c4c14 patch 9.0.1203: return type of values() is always list<any>
Problem:    Return type of values() is always list<any>.
Solution:   Use the member type if possible. (issue #11822)
2023-01-15 18:17:12 +00:00
Bram Moolenaar
267db7c3e3 patch 9.0.0994: tests for empty prop type name fail
Problem:    Tests for empty prop type name fail.
Solution:   Correct the error number.
2022-12-02 21:37:45 +00:00
Bram Moolenaar
89469d157a patch 9.0.0993: display errors when adding or removing text property type
Problem:    Display errors when adding or removing text property type.
Solution:   Perform a full redraw.  Only use text properties for which the
            type is defined. (closes #11655)
2022-12-02 20:46:26 +00:00
Bram Moolenaar
ce30ccc06a patch 9.0.0916: getbufline() is inefficient for getting a single line
Problem:    getbufline() is inefficient for getting a single line.
Solution:   Add getbufoneline().
2022-11-21 19:57:04 +00:00
Yegappan Lakshmanan
4c8d2f02b3 patch 9.0.0863: col() and charcol() only work for the current window
Problem:    col() and charcol() only work for the current window.
Solution:   Add an optional winid argument. (Yegappan Lakshmanan,
            closes #11466, closes #11461)
2022-11-12 16:07:47 +00:00
Bram Moolenaar
cd9c8d400c patch 9.0.0837: append() reports failure when not appending anything
Problem:    append() reports failure when not appending anything.
Solution:   Only report failure when appending something. (closes #11498)
2022-11-05 23:46:43 +00:00
Bram Moolenaar
0e9bdad545 patch 9.0.0766: too many delete() calls in tests
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.
2022-10-15 20:06:33 +01:00
Bram Moolenaar
a4962cd7ba patch 9.0.0728: extend() test fails
Problem:    extend() test fails.
Solution:   Item is final, not const.
2022-10-11 23:12:59 +01:00
Bram Moolenaar
a5d1a67bee patch 9.0.0629: get an error for using const only when executing
Problem:    Get an error for using const only when executing.
Solution:   Check for const at compile time for filter(), map(), remove(),
            reverse(), sort() and uniq().
2022-09-30 17:57:47 +01:00
Bram Moolenaar
6586a01514 patch 9.0.0627: "const" and "final" both make the type a constant
Problem:    "const" and "final" both make the type a constant. (Daniel
            Steinberg)
Solution:   Only have "const" make the type a constant.
2022-09-30 11:04:50 +01:00
Bram Moolenaar
fa1039760e patch 9.0.0623: error for modifying a const is not detected at compile time
Problem:    Error for modifying a const is not detected at compile time.
Solution:   Add TTFLAG_CONST and check for it in add() and extend().
2022-09-29 19:14:42 +01:00
Bram Moolenaar
a9b0f8f7f3 patch 9.0.0563: timer_info() test fails
Problem:    Timer_info() test fails.
Solution:   Ignore test timeout timer.  Don't use test_null_job() when not
            available.
2022-09-23 21:01:54 +01:00
Bram Moolenaar
73e28dcc61 patch 9.0.0491: no good reason to build without the float feature
Problem:    No good reason to build without the float feature.
Solution:   Remove configure check for float and "#ifdef FEAT_FLOAT".
2022-09-17 21:08:33 +01:00
Bram Moolenaar
aa5341477c patch 9.0.0473: fullcommand() only works for the current script version
Problem:    fullcommand() only works for the current script version.
Solution:   Add an optional argument for the script version.
2022-09-15 21:46:02 +01:00
Bakudankun
375141e1f8 patch 9.0.0430: cannot use repeat() with a blob
Problem:    Cannot use repeat() with a blob.
Solution:   Implement blob repeat. (closes #11090)
2022-09-09 18:46:47 +01:00
Yegappan Lakshmanan
8deb2b30c7 patch 9.0.0359: error message for wrong argument type is not specific
Problem:    Error message for wrong argument type is not specific.
Solution:   Include more information in the error. (Yegappan Lakshmanan,
            closes #11037)
2022-09-02 15:15:27 +01:00
Bram Moolenaar
3e518a8ec7 patch 9.0.0331: cannot use items() on a string
Problem:    Cannot use items() on a string.
Solution:   Make items() work on a string. (closes #11016)
2022-08-30 17:45:33 +01:00
Bram Moolenaar
976f859763 patch 9.0.0327: items() does not work on a list
Problem:    items() does not work on a list. (Sergey Vlasov)
Solution:   Make items() work on a list. (closes #11013)
2022-08-30 14:34:52 +01:00
Yegappan Lakshmanan
2f892d8663 patch 9.0.0303: it is not easy to get information about a script
Problem:    It is not easy to get information about a script.
Solution:   Make getscriptinf() return the version.  When selecting a specific
            script return functions and variables. (Yegappan Lakshmanan,
            closes #10991)
2022-08-28 18:52:10 +01:00
Yegappan Lakshmanan
25f1e55562 patch 9.0.0299: error messages for setcmdline() could be better
Problem:    Error messages for setcmdline() could be better.
Solution:   Use more specific error messages. (Yegappan Lakshmanan,
            closes #10995)
2022-08-28 17:25:04 +01:00
Shougo Matsushita
07ea5f1509 patch 9.0.0285: it is not easy to change the command line from a plugin
Problem:    It is not easy to change the command line from a plugin.
Solution:   Add setcmdline(). (Shougo Matsushita, closes #10869)
2022-08-27 12:22:25 +01:00
Yegappan Lakshmanan
520f6ef60a patch 9.0.0269: getscriptinfo() does not include the version
Problem:    getscriptinfo() does not include the version.  Cannot select
            entries by script name.
Solution:   Add the "version" item and the "name" argument. (Yegappan
            Lakshmanan, closes #10962)
2022-08-25 17:40:40 +01:00
Bram Moolenaar
9e043181ad patch 9.0.0226: job_start() test may fail under valgrind
Problem:    job_start() test may fail under valgrind.
Solution:   Wait until the job is running.
2022-08-18 15:22:09 +01:00
Yegappan Lakshmanan
63acae13f5 patch 9.0.0204: indexof() may leak memory
Problem:    indexof() may leak memory.
Solution:   Free allocated values. (Yegappan Lakshmanan, closes #10916)
2022-08-14 12:07:11 +01:00
Yegappan Lakshmanan
3fbf6cd355 patch 9.0.0202: code and help for indexof() is not ideal
Problem:    Code and help for indexof() is not ideal.
Solution:   Refactor the code, improve the help. (Yegappan Lakshmanan,
            closes #10908)
2022-08-13 21:35:13 +01:00
Yegappan Lakshmanan
b218655d5a patch 9.0.0196: finding value in list may require a for loop
Problem:    Finding value in list may require a for loop.
Solution:   Add indexof(). (Yegappan Lakshmanan, closes #10903)
2022-08-13 13:09:20 +01:00
Bram Moolenaar
28f84e17b0 patch 9.0.0090: no error when assigning bool to a string option
Problem:    No error when assigning bool to a string option with setwinvar().
Solution:   Give an error (closes #10766)
2022-07-27 12:30:13 +01:00
Yegappan Lakshmanan
ee47eaceaa patch 9.0.0003: functions are global while they could be local
Problem:    Functions are global while they could be local.
Solution:   Add "static".  Add a few tests. (Yegappan Lakshmanan,
            closes #10612)
2022-06-29 12:55:36 +01:00
LemonBoy
0f7a3e1de6 patch 8.2.5019: cannot get the first screen column of a character
Problem:    Cannot get the first screen column of a character.
Solution:   Let virtcol() optionally return a list. (closes #10482,
            closes #7964)
2022-05-26 12:10:37 +01:00
Yegappan Lakshmanan
1755a91851 patch 8.2.4981: it is not possible to manipulate autocommands
Problem:    It is not possible to manipulate autocommands.
Solution:   Add functions to add, get and set autocommands. (Yegappan
            Lakshmanan, closes #10291)
2022-05-19 10:31:47 +01:00
Bram Moolenaar
7f8a3b11bf patch 8.2.4946: Vim9: some code not covered by tests
Problem:    Vim9: some code not covered by tests.
Solution:   Add a few more test cases.  Remove dead code.
2022-05-12 22:03:01 +01:00
Bram Moolenaar
d0132f4862 patch 8.2.4940: some code is never used
Problem:    Some code is never used.
Solution:   Remove dead code.  Add a few more test cases.
2022-05-12 11:05:40 +01:00
Ernie Rael
d8f5f76621 patch 8.2.4932: not easy to filter the output of maplist()
Problem:    Not easy to filter the output of maplist().
Solution:   Add mode_bits to the dictionary. (Ernie Rael, closes #10356)
2022-05-10 17:50:39 +01:00
Bram Moolenaar
2ac037f54b patch 8.2.4927: return type of remove() incorrect when using three arguments
Problem:    Return type of remove() incorrect when using three arguments.
Solution:   Use first argument type when there are three arguments.
            (closes #10387)
2022-05-09 14:12:14 +01:00
Bram Moolenaar
ec89223478 patch 8.2.4892: test failures because of changed error messages
Problem:    Test failures because of changed error messages.
Solution:   Adjust the exptected error messages.
2022-05-06 17:53:06 +01:00
Bram Moolenaar
3e79427803 patch 8.2.4879: screendump test may fail when using valgrind
Problem:    Screendump test may fail when using valgrind.
Solution:   Wait longer for the first screendump.
2022-05-06 11:21:19 +01:00
LemonBoy
f3b4895f27 patch 8.2.4870: Vim9: expression in :substitute is not compiled
Problem:    Vim9: expression in :substitute is not compiled.
Solution:   Use an INSTR instruction if possible. (closes #10334)
2022-05-05 13:53:03 +01:00
Ernie Rael
51d04d16f2 patch 8.2.4861: it is not easy to restore saved mappings
Problem:    It is not easy to restore saved mappings.
Solution:   Make mapset() accept a dict argument. (Ernie Rael, closes #10295)
2022-05-04 15:40:22 +01:00