@@ -562,14 +562,20 @@ defmodule CodeFragmentTest do
562562 assert CF . surround_context ( "안녕_세상" , { 1 , 6 } ) == :none
563563
564564 # Keywords are not local or var
565- for keyword <- ~w( do end after catch else rescue fn true false nil) c do
566- keyword_length = length ( keyword ) + 1
567-
568- assert % {
569- context: { :keyword , ^ keyword } ,
565+ for keyword <- ~w( do end after catch else rescue fn true false nil) c ,
566+ length = length ( keyword ) ,
567+ i <- 1 .. length do
568+ assert CF . surround_context ( keyword , { 1 , i } ) == % {
569+ context: { :keyword , keyword } ,
570570 begin: { 1 , 1 } ,
571- end: { 1 , ^ keyword_length }
572- } = CF . surround_context ( keyword , { 1 , 1 } )
571+ end: { 1 , length + 1 }
572+ }
573+
574+ assert CF . surround_context ( ~c" Foo " ++ keyword , { 1 , 4 + i } ) == % {
575+ context: { :keyword , keyword } ,
576+ begin: { 1 , 5 } ,
577+ end: { 1 , length + 5 }
578+ }
573579 end
574580 end
575581
@@ -664,6 +670,12 @@ defmodule CodeFragmentTest do
664670 begin: { 1 , 1 } ,
665671 end: { 1 , byte_size ( op ) + 1 }
666672 }
673+
674+ assert CF . surround_context ( "Foo #{ op } " , { 1 , 4 + i } ) == % {
675+ context: { :operator , String . to_charlist ( op ) } ,
676+ begin: { 1 , 5 } ,
677+ end: { 1 , byte_size ( op ) + 5 }
678+ }
667679 end
668680 end
669681
0 commit comments