From 9197aa6a8d7123abadb0d1d7b3497d62e50fec9b Mon Sep 17 00:00:00 2001 From: David Vo Date: Sun, 3 Sep 2023 21:24:34 +1000 Subject: [PATCH] Turn code_object_oriented_accessor into list --- lang/csharp/csharp.py | 3 --- lang/java/java.py | 3 --- lang/javascript/javascript.py | 3 --- lang/php/php.py | 8 +++++--- lang/python/python.py | 3 --- lang/ruby/ruby.py | 3 --- lang/rust/rust.py | 3 --- lang/scala/scala.py | 3 --- lang/tags/object_oriented.py | 12 +++++++++++- lang/tags/object_oriented.talon | 3 +++ 10 files changed, 19 insertions(+), 25 deletions(-) diff --git a/lang/csharp/csharp.py b/lang/csharp/csharp.py index b1032e8a30..dd5e931312 100644 --- a/lang/csharp/csharp.py +++ b/lang/csharp/csharp.py @@ -121,9 +121,6 @@ def code_block(): actions.insert("{}") actions.key("left enter enter up tab") - def code_operator_object_accessor(): - actions.auto_insert(".") - def code_insert_null(): actions.auto_insert("null") diff --git a/lang/java/java.py b/lang/java/java.py index 58f0b20981..8c8d886064 100644 --- a/lang/java/java.py +++ b/lang/java/java.py @@ -185,9 +185,6 @@ def code_operator_bitwise_right_shift(): def code_operator_bitwise_right_shift_assignment(): actions.insert(" >>= ") - def code_operator_object_accessor(): - actions.insert(".") - def code_insert_null(): actions.insert("null") diff --git a/lang/javascript/javascript.py b/lang/javascript/javascript.py index 38bd3bcffc..5fbdc086e9 100644 --- a/lang/javascript/javascript.py +++ b/lang/javascript/javascript.py @@ -95,9 +95,6 @@ def code_block(): actions.user.insert_between("{", "}") actions.key("enter") - def code_operator_object_accessor(): - actions.auto_insert(".") - def code_state_while(): actions.user.insert_between("while (", ")") diff --git a/lang/php/php.py b/lang/php/php.py index aff3f21df7..c76d7720a7 100644 --- a/lang/php/php.py +++ b/lang/php/php.py @@ -16,13 +16,15 @@ } ctx.lists["user.code_self"] = {"this": "$this"} +ctx.lists["user.code_operator_object_accessor"] = { + "arrow": "->", + # backwards compatibility + "dot": "->", +} @ctx.action_class("user") class UserActions: - def code_operator_object_accessor(): - actions.auto_insert("->") - def code_define_class(): actions.auto_insert("class ") diff --git a/lang/python/python.py b/lang/python/python.py index 10428fb1af..efeb26c07c 100644 --- a/lang/python/python.py +++ b/lang/python/python.py @@ -252,9 +252,6 @@ def code_operator_bitwise_right_shift(): def code_operator_bitwise_right_shift_assignment(): actions.auto_insert(" >>= ") - def code_operator_object_accessor(): - actions.auto_insert(".") - def code_insert_null(): actions.auto_insert("None") diff --git a/lang/ruby/ruby.py b/lang/ruby/ruby.py index 4a00a27319..270b77dbf1 100644 --- a/lang/ruby/ruby.py +++ b/lang/ruby/ruby.py @@ -107,9 +107,6 @@ def code_operator_bitwise_right_shift(): def code_operator_bitwise_right_shift_assignment(): actions.auto_insert(" >>= ") - def code_operator_object_accessor(): - actions.auto_insert(".") - def code_insert_null(): actions.auto_insert("nil") diff --git a/lang/rust/rust.py b/lang/rust/rust.py index 989fea2364..9e4ce2aff2 100644 --- a/lang/rust/rust.py +++ b/lang/rust/rust.py @@ -299,9 +299,6 @@ def code_next(): # tag: object_oriented - def code_operator_object_accessor(): - actions.auto_insert(".") - def code_define_class(): actions.auto_insert("struct ") diff --git a/lang/scala/scala.py b/lang/scala/scala.py index ca94bfb2de..6303300ea7 100644 --- a/lang/scala/scala.py +++ b/lang/scala/scala.py @@ -272,9 +272,6 @@ def code_insert_type_annotation(type: str): def code_insert_return_type(type: str): actions.insert(f": {type}") - def code_operator_object_accessor(): - actions.insert(".") - def code_default_function(text: str): """Inserts function declaration""" actions.user.code_public_function(text) diff --git a/lang/tags/object_oriented.py b/lang/tags/object_oriented.py index dbca0945d2..c62ca851cd 100644 --- a/lang/tags/object_oriented.py +++ b/lang/tags/object_oriented.py @@ -1,5 +1,6 @@ -from talon import Module +from talon import Context, Module +ctx = Context() mod = Module() mod.tag( @@ -12,6 +13,15 @@ desc="Reference to the current object (e.g. C++ `this` or Python `self`)", ) +mod.list( + "code_operator_object_accessor", + desc="An object accessor operator (e.g. Java `.` or PHP `->`)", +) + +ctx.lists["self.code_operator_object_accessor"] = { + "dot": ".", +} + @mod.action_class class Actions: diff --git a/lang/tags/object_oriented.talon b/lang/tags/object_oriented.talon index cbe46859c2..5bd49647cc 100644 --- a/lang/tags/object_oriented.talon +++ b/lang/tags/object_oriented.talon @@ -8,3 +8,6 @@ tag: user.code_object_oriented state {user.code_self}: insert(code_self) state class: user.code_define_class() + +{user.code_self} {user.code_operator_object_accessor}: + insert("{code_self}{code_operator_object_accessor}")