1

Non-Unique Task, Profile, and Scene Names

Proposal:

Allow multiple tasks, scenes, and profiles to have the same name so long as they're in different projects. You can have the default be to check the current project so you don't break people's stuff and you can make it so that if there's only one task with said name, it'll use that one to further the not breaking of stuff.

Examples:

1) Project "Main" has a task named "Get Project Name" which returns "Main" while the project "Chrome" also has one which returns "Chrome". You could access Main's task thusly, "Main(Get Project Name)" and if the calling task is in Main, then simply performing "Get Project Name" would return "Main".

2) If Chrome has a task named "Launch Chrome" and no other projects have a task named that, then one could simply perform "Launch Chrome" from any project unencumbered.

Notes:

1) If you create a new task which has the same name as an existing task, to avoid ambiguity, Tasker should automatically convert all the existing Perform Task actions and profiles using that task's name to include its project name.

2) or after Tasker updates, convert them all at once.

3) An alternative, instead of "Project Name(* Name)", add a new parameter to Perform Action, Profile Status, Show Scene, etc. which would be the containing project's name.

4) Moving a task to a different project should have the same effect as renaming one currently does.

Use cases:

1) Importing someone else's project currently won't work if any task names are non-unique. Implementing this would make that issue go away.

2) We can use more generic task names such as "Get Variable" to return a variable local to that project. Just like with classes in Java, PHP, etc.

3) This could also facilitate cloning of whole projects.