@@ -3655,61 +3655,166 @@ func testContext(v *Nvim) func(*testing.T) {
3655
3655
3656
3656
func testExtmarks (v * Nvim ) func (* testing.T ) {
3657
3657
return func (t * testing.T ) {
3658
- clearBuffer (t , v , 0 ) // clear curret buffer text
3658
+ t .Run ("Nvim" , func (t * testing.T ) {
3659
+ // setup buffer lines
3660
+ lines := [][]byte {
3661
+ []byte ("hello" ),
3662
+ []byte ("world" ),
3663
+ }
3664
+ if err := v .SetBufferLines (Buffer (0 ), 0 , - 1 , true , lines ); err != nil {
3665
+ t .Fatal (err )
3666
+ }
3659
3667
3660
- lines := [][]byte {[]byte ("hello" ), []byte ("world" )}
3661
- if err := v .SetBufferLines (Buffer (0 ), 0 , - 1 , true , lines ); err != nil {
3662
- t .Fatal (err )
3663
- }
3668
+ // create namespace for test extmarks
3669
+ const extMarkName = "test_extmarks"
3670
+ nsID , err := v .CreateNamespace (extMarkName )
3671
+ if err != nil {
3672
+ t .Fatal (err )
3673
+ }
3664
3674
3665
- nsID , err := v .CreateNamespace ("test_extmarks" )
3666
- if err != nil {
3667
- t .Fatal (err )
3668
- }
3669
- const (
3670
- extMarkID = 1
3671
- wantLine = 1
3672
- wantCol = 3
3673
- )
3674
- gotExtMarkID , err := v .SetBufferExtmark (Buffer (0 ), nsID , wantLine , wantCol , make (map [string ]interface {}))
3675
- if err != nil {
3676
- t .Fatal (err )
3677
- }
3678
- if gotExtMarkID != extMarkID {
3679
- t .Fatalf ("got %d extMarkID but want %d" , gotExtMarkID , extMarkID )
3680
- }
3675
+ const (
3676
+ wantExtMarkID = 1
3677
+ wantLine = 1
3678
+ wantCol = 3
3679
+ )
3680
+ gotExtMarkID , err := v .SetBufferExtmark (Buffer (0 ), nsID , wantLine , wantCol , make (map [string ]interface {}))
3681
+ if err != nil {
3682
+ t .Fatal (err )
3683
+ }
3684
+ if gotExtMarkID != wantExtMarkID {
3685
+ t .Fatalf ("got %d extMarkID but want %d" , gotExtMarkID , wantExtMarkID )
3686
+ }
3681
3687
3682
- extmarks , err := v .BufferExtmarks (Buffer (0 ), nsID , 0 , - 1 , make (map [string ]interface {}))
3683
- if err != nil {
3684
- t .Fatal (err )
3685
- }
3686
- if len (extmarks ) > 1 {
3687
- t .Fatalf ("expected extmarks length to 1 but %d" , len (extmarks ))
3688
- }
3689
- if extmarks [0 ].ID != gotExtMarkID {
3690
- t .Fatalf ("got %d extMarkID but want %d" , extmarks [0 ].ID , extMarkID )
3691
- }
3692
- if extmarks [0 ].Row != wantLine {
3693
- t .Fatalf ("got %d extmarks Row but want %d" , extmarks [0 ].Row , wantLine )
3694
- }
3695
- if extmarks [0 ].Col != wantCol {
3696
- t .Fatalf ("got %d extmarks Col but want %d" , extmarks [0 ].Col , wantCol )
3697
- }
3688
+ extmarks , err := v .BufferExtmarks (Buffer (0 ), nsID , 0 , - 1 , make (map [string ]interface {}))
3689
+ if err != nil {
3690
+ t .Fatal (err )
3691
+ }
3692
+ if len (extmarks ) > 1 {
3693
+ t .Fatalf ("expected extmarks length to 1 but got %d" , len (extmarks ))
3694
+ }
3695
+ if extmarks [0 ].ID != gotExtMarkID {
3696
+ t .Fatalf ("got %d extMarkID but want %d" , extmarks [0 ].ID , wantExtMarkID )
3697
+ }
3698
+ if extmarks [0 ].Row != wantLine {
3699
+ t .Fatalf ("got %d extmarks Row but want %d" , extmarks [0 ].Row , wantLine )
3700
+ }
3701
+ if extmarks [0 ].Col != wantCol {
3702
+ t .Fatalf ("got %d extmarks Col but want %d" , extmarks [0 ].Col , wantCol )
3703
+ }
3698
3704
3699
- pos , err := v .BufferExtmarkByID (Buffer (0 ), nsID , gotExtMarkID , make (map [string ]interface {}))
3700
- if err != nil {
3701
- t .Fatal (err )
3702
- }
3703
- if pos [0 ] != wantLine {
3704
- t .Fatalf ("got %d extMark line but want %d" , pos [0 ], wantLine )
3705
- }
3706
- if pos [1 ] != wantCol {
3707
- t .Fatalf ("got %d extMark col but want %d" , pos [1 ], wantCol )
3708
- }
3705
+ pos , err := v .BufferExtmarkByID (Buffer (0 ), nsID , gotExtMarkID , make (map [string ]interface {}))
3706
+ if err != nil {
3707
+ t .Fatal (err )
3708
+ }
3709
+ if pos [0 ] != wantLine {
3710
+ t .Fatalf ("got %d extMark line but want %d" , pos [0 ], wantLine )
3711
+ }
3712
+ if pos [1 ] != wantCol {
3713
+ t .Fatalf ("got %d extMark col but want %d" , pos [1 ], wantCol )
3714
+ }
3709
3715
3710
- if err := v .ClearBufferNamespace (Buffer (0 ), nsID , 0 , - 1 ); err != nil {
3711
- t .Fatal (err )
3712
- }
3716
+ deleted , err := v .DeleteBufferExtmark (Buffer (0 ), nsID , gotExtMarkID )
3717
+ if err != nil {
3718
+ t .Fatal (err )
3719
+ }
3720
+ if ! deleted {
3721
+ t .Fatalf ("expected deleted but got %t" , deleted )
3722
+ }
3723
+
3724
+ if err := v .ClearBufferNamespace (Buffer (0 ), nsID , 0 , - 1 ); err != nil {
3725
+ t .Fatal (err )
3726
+ }
3727
+
3728
+ t .Cleanup (func () {
3729
+ clearBuffer (t , v , Buffer (0 )) // clear curret buffer text
3730
+ })
3731
+ })
3732
+
3733
+ t .Run ("Batch" , func (t * testing.T ) {
3734
+ b := v .NewBatch ()
3735
+
3736
+ // setup buffer lines
3737
+ lines := [][]byte {
3738
+ []byte ("hello" ),
3739
+ []byte ("world" ),
3740
+ }
3741
+ b .SetBufferLines (Buffer (0 ), 0 , - 1 , true , lines )
3742
+ if err := b .Execute (); err != nil {
3743
+ t .Fatal (err )
3744
+ }
3745
+
3746
+ // create namespace for test extmarks
3747
+ const extMarkName = "test_extmarks"
3748
+ var nsID int
3749
+ b .CreateNamespace (extMarkName , & nsID )
3750
+ if err := b .Execute (); err != nil {
3751
+ t .Fatal (err )
3752
+ }
3753
+
3754
+ const (
3755
+ wantExtMarkID = 2
3756
+ wantLine = 1
3757
+ wantCol = 3
3758
+ )
3759
+ var gotExtMarkID int
3760
+ b .SetBufferExtmark (Buffer (0 ), nsID , wantLine , wantCol , make (map [string ]interface {}), & gotExtMarkID )
3761
+ if err := b .Execute (); err != nil {
3762
+ t .Fatal (err )
3763
+ }
3764
+ if gotExtMarkID != wantExtMarkID {
3765
+ t .Fatalf ("got %d extMarkID but want %d" , gotExtMarkID , wantExtMarkID )
3766
+ }
3767
+
3768
+ var extmarks []ExtMark
3769
+ b .BufferExtmarks (Buffer (0 ), nsID , 0 , - 1 , make (map [string ]interface {}), & extmarks )
3770
+ if err := b .Execute (); err != nil {
3771
+ t .Fatal (err )
3772
+ }
3773
+
3774
+ if len (extmarks ) > 1 {
3775
+ t .Fatalf ("expected extmarks length to 1 but got %d" , len (extmarks ))
3776
+ }
3777
+ if extmarks [0 ].ID != gotExtMarkID {
3778
+ t .Fatalf ("got %d extMarkID but want %d" , extmarks [0 ].ID , wantExtMarkID )
3779
+ }
3780
+ if extmarks [0 ].Row != wantLine {
3781
+ t .Fatalf ("got %d extmarks Row but want %d" , extmarks [0 ].Row , wantLine )
3782
+ }
3783
+ if extmarks [0 ].Col != wantCol {
3784
+ t .Fatalf ("got %d extmarks Col but want %d" , extmarks [0 ].Col , wantCol )
3785
+ }
3786
+
3787
+ var pos []int
3788
+ b .BufferExtmarkByID (Buffer (0 ), nsID , gotExtMarkID , make (map [string ]interface {}), & pos )
3789
+ if err := b .Execute (); err != nil {
3790
+ t .Fatal (err )
3791
+ }
3792
+
3793
+ if pos [0 ] != wantLine {
3794
+ t .Fatalf ("got %d extMark line but want %d" , pos [0 ], wantLine )
3795
+ }
3796
+ if pos [1 ] != wantCol {
3797
+ t .Fatalf ("got %d extMark col but want %d" , pos [1 ], wantCol )
3798
+ }
3799
+
3800
+ var deleted bool
3801
+ b .DeleteBufferExtmark (Buffer (0 ), nsID , gotExtMarkID , & deleted )
3802
+ if err := b .Execute (); err != nil {
3803
+ t .Fatal (err )
3804
+ }
3805
+ if ! deleted {
3806
+ t .Fatalf ("expected deleted but got %t" , deleted )
3807
+ }
3808
+
3809
+ b .ClearBufferNamespace (Buffer (0 ), nsID , 0 , - 1 )
3810
+ if err := b .Execute (); err != nil {
3811
+ t .Fatal (err )
3812
+ }
3813
+
3814
+ t .Cleanup (func () {
3815
+ clearBuffer (t , v , Buffer (0 )) // clear curret buffer text
3816
+ })
3817
+ })
3713
3818
}
3714
3819
}
3715
3820
0 commit comments