@@ -67,6 +67,7 @@ func TestAPI(t *testing.T) {
67
67
t .Run ("Context" , testContext (t , v ))
68
68
t .Run ("Extmarks" , testExtmarks (t , v ))
69
69
t .Run ("RuntimeFiles" , testRuntimeFiles (t , v ))
70
+ t .Run ("OptionsInfo" , testOptionsInfo (t , v ))
70
71
}
71
72
72
73
func testSimpleHandler (t * testing.T , v * Nvim ) func (* testing.T ) {
@@ -838,6 +839,120 @@ func testRuntimeFiles(t *testing.T, v *Nvim) func(*testing.T) {
838
839
}
839
840
}
840
841
842
+ func testOptionsInfo (t * testing.T , v * Nvim ) func (* testing.T ) {
843
+ return func (t * testing.T ) {
844
+ want := & OptionInfo {
845
+ Name : "" ,
846
+ ShortName : "" ,
847
+ Type : "" ,
848
+ Default : nil ,
849
+ WasSet : false ,
850
+ LastSetSid : 0 ,
851
+ LastSetLinenr : 0 ,
852
+ LastSetChan : 0 ,
853
+ Scope : "" ,
854
+ GlobalLocal : false ,
855
+ CommaList : false ,
856
+ FlagList : false ,
857
+ }
858
+ got , err := v .AllOptionsInfo ()
859
+ if err != nil {
860
+ t .Fatal (err )
861
+ }
862
+ if ! reflect .DeepEqual (want , got ) {
863
+ t .Fatalf ("got %v but want %v" , got , want )
864
+ }
865
+
866
+ tests := map [string ]struct {
867
+ name string
868
+ want * OptionInfo
869
+ }{
870
+ "filetype" : {
871
+ name : "filetype" ,
872
+ want : & OptionInfo {
873
+ Name : "filetype" ,
874
+ ShortName : "ft" ,
875
+ Type : "string" ,
876
+ Default : "" ,
877
+ WasSet : false ,
878
+ LastSetSid : 0 ,
879
+ LastSetLinenr : 0 ,
880
+ LastSetChan : 0 ,
881
+ Scope : "buf" ,
882
+ GlobalLocal : false ,
883
+ CommaList : false ,
884
+ FlagList : false ,
885
+ },
886
+ },
887
+ "cmdheight" : {
888
+ name : "cmdheight" ,
889
+ want : & OptionInfo {
890
+ Name : "cmdheight" ,
891
+ ShortName : "ch" ,
892
+ Type : "number" ,
893
+ Default : int64 (1 ),
894
+ WasSet : false ,
895
+ LastSetSid : 0 ,
896
+ LastSetLinenr : 0 ,
897
+ LastSetChan : 0 ,
898
+ Scope : "global" ,
899
+ GlobalLocal : false ,
900
+ CommaList : false ,
901
+ FlagList : false ,
902
+ },
903
+ },
904
+ "hidden" : {
905
+ name : "hidden" ,
906
+ want : & OptionInfo {
907
+ Name : "hidden" ,
908
+ ShortName : "hid" ,
909
+ Type : "boolean" ,
910
+ Default : false ,
911
+ WasSet : false ,
912
+ LastSetSid : 0 ,
913
+ LastSetLinenr : 0 ,
914
+ LastSetChan : 0 ,
915
+ Scope : "global" ,
916
+ GlobalLocal : false ,
917
+ CommaList : false ,
918
+ FlagList : false ,
919
+ },
920
+ },
921
+ }
922
+ for name , tt := range tests {
923
+ tt := tt
924
+ t .Run ("Nvim/" + name , func (t * testing.T ) {
925
+ t .Parallel ()
926
+
927
+ got , err := v .OptionInfo (tt .name )
928
+ if err != nil {
929
+ t .Fatal (err )
930
+ }
931
+ if ! reflect .DeepEqual (tt .want , got ) {
932
+ t .Fatalf ("got %#v but want %#v" , got , tt .want )
933
+ }
934
+ })
935
+ }
936
+ for name , tt := range tests {
937
+ tt := tt
938
+ t .Run ("Atomic/" + name , func (t * testing.T ) {
939
+ t .Parallel ()
940
+
941
+ b := v .NewBatch ()
942
+
943
+ var got OptionInfo
944
+ b .OptionInfo (tt .name , & got )
945
+ if err := b .Execute (); err != nil {
946
+ t .Fatal (err )
947
+ }
948
+ if ! reflect .DeepEqual (tt .want , & got ) {
949
+ t .Fatalf ("got %#v but want %#v" , & got , tt .want )
950
+ }
951
+ })
952
+ }
953
+ }
954
+ }
955
+
841
956
// clearBuffer clears the buffer text.
842
957
func clearBuffer (tb testing.TB , v * Nvim , buffer Buffer ) {
843
958
tb .Helper ()
0 commit comments