@@ -366,6 +366,16 @@ return inject_all({
366366 }),
367367 -- defaults include
368368 -- (, ), [, ], {, }, <, >, ", ', `, ?, t, <space>
369+ -- subword
370+ W = {
371+ {
372+ " %u[%l%d]+%f[^%l%d]" ,
373+ " %f[%S][%l%d]+%f[^%l%d]" ,
374+ " %f[%P][%l%d]+%f[^%l%d]" ,
375+ " ^[%l%d]+%f[^%l%d]" ,
376+ },
377+ " ^().*()$" ,
378+ },
369379 }
370380 require (" mini.ai" ).setup (opts )
371381 end ,
@@ -711,18 +721,57 @@ return inject_all({
711721 event = " InsertEnter" ,
712722 opts = {
713723 mappings = {
714- -- do not auto create a pair when in front of word chars
715- [" (" ] = { action = " open" , pair = " ()" , neigh_pattern = " [^\\ ][^%w]" },
716- [" [" ] = { action = " open" , pair = " []" , neigh_pattern = " [^\\ ][^%w]" },
717- [" {" ] = { action = " open" , pair = " {}" , neigh_pattern = " [^\\ ][^%w]" },
718- -- do not swallow closing brackets when after a space chars
719- [" )" ] = { action = " close" , pair = " ()" , neigh_pattern = " [^\\ %s]." },
720- [" ]" ] = { action = " close" , pair = " []" , neigh_pattern = " [^\\ %s]." },
721- [" }" ] = { action = " close" , pair = " {}" , neigh_pattern = " [^\\ %s]." },
722- -- we use the default close actions
723- [' "' ] = { action = " closeopen" , pair = ' ""' , neigh_pattern = " [^\\ ][%s%)%]}]" , register = { cr = false } },
724- [" '" ] = { action = " closeopen" , pair = " ''" , neigh_pattern = " [^%a\\ ][%s%)%]}]" , register = { cr = false } },
725- [" `" ] = { action = " closeopen" , pair = " ``" , neigh_pattern = " [^\\ ][%s%)%]}]" , register = { cr = false } },
724+ [" (" ] = {
725+ action = " open" ,
726+ pair = " ()" ,
727+ neigh_pattern = " .[%s%)]" ,
728+ register = { cr = false },
729+ },
730+ [" [" ] = {
731+ action = " open" ,
732+ pair = " []" ,
733+ neigh_pattern = " .[%s%)}%]]" ,
734+ register = { cr = false },
735+ },
736+ [" {" ] = {
737+ action = " open" ,
738+ pair = " {}" ,
739+ neigh_pattern = " .[%s%)}%]]" ,
740+ register = { cr = false },
741+ },
742+ [" )" ] = {
743+ action = " close" ,
744+ pair = " ()" ,
745+ neigh_pattern = " [^\\ %s]." ,
746+ },
747+ [" ]" ] = {
748+ action = " close" ,
749+ pair = " []" ,
750+ neigh_pattern = " [^\\ %s]." ,
751+ },
752+ [" }" ] = {
753+ action = " close" ,
754+ pair = " {}" ,
755+ neigh_pattern = " [^\\ %s]." ,
756+ },
757+ [' "' ] = {
758+ action = " closeopen" ,
759+ pair = ' ""' ,
760+ neigh_pattern = " [^%w\\ ][^%w]" ,
761+ register = { cr = false },
762+ },
763+ [" '" ] = {
764+ action = " closeopen" ,
765+ pair = " ''" ,
766+ neigh_pattern = " [^%w\\ ][^%w]" ,
767+ register = { cr = false },
768+ },
769+ [" `" ] = {
770+ action = " closeopen" ,
771+ pair = " ``" ,
772+ neigh_pattern = " [^%w\\ ][^%w]" ,
773+ register = { cr = false },
774+ },
726775 },
727776 },
728777 },
0 commit comments