aawadall / PyProjMan

Command-line Based Project Management Application written in Python
https://aawadall.github.io/PyProjMan/
MIT License
3 stars 1 forks source link

Define basic Text UI Language #39

Open aawadall opened 7 years ago

aawadall commented 7 years ago

Define basic UI keywords to associate with basic task operations

burhania2 commented 7 years ago

Do you want me to just come up with keywords or do you have words that you want associated with task operations? (parser add_arguments?)

aawadall commented 7 years ago

We have already a json file under data named parser.json with keywords defined. We need to review such keywords and find a way to define syntax rather than hardcoding it directly in our source code

burhania2 commented 7 years ago

So we need to make the dictionary associate the keys with a variable which we can declare and then use variables to manipulate data. ex. verbs:{ add:'ADD'} rather then verbs:{add:'ADD'} where add= 'add' or whatever we might change it to? This would also make it possible to change values of key from default if someone wants to specify his own keys. ('is this what you mean?)

aawadall commented 7 years ago

we need to define the following dictionaries: primitives : contains a finite set of keywords, and are assigned numeric values
verbs: contains a set of commands, linked to keywords (primitives) parameters: keywords used to complete a command, eg. create project, or create task, same verb, different parameters decorators: (i couldn't come up with a better name), this helps us build complex commands like, add child task [task name] to task [task name] the "to" helps us link two objects

and yes, defining verbs, parameters and decorators in a file, helps us change keywords, and hopefully allow for multi-language support

aawadall commented 7 years ago

should we open a wiki page in this repo covering the syntax rules and another one for the json file?

burhania2 commented 7 years ago

Yes, it will make it easier to learn how to use the syntax

aawadall commented 7 years ago

Done, your contribution is welcome

aawadall commented 7 years ago

Parser Confg File Wiki Page CLI Sytnax Wiki Page

burhania2 commented 7 years ago

I am not sure what you mean by defining the dictionaries, aren't already defined in the json file?

aawadall commented 7 years ago

yes, partially that was the first iteration of keywords and verbs if you can lend me a fresh eye, or maybe help document the rules, this might help us solidify syntax

burhania2 commented 7 years ago

What is the difference between add and create? And should planned be a "MEAN" or should it be an assigned value at beginning of task? Nvm, add would be for organisation, while create is initialization. I just pictured add doing creation. (add new task) might need clarification in wiki.

aawadall commented 7 years ago

note that multiple verbs might end up with the same primitive, it is a way to make the CLI more user friendly so you can say add task or create task, you can say create project, or even create proj and the parser will figure it out

burhania2 commented 7 years ago

ok!

burhania2 commented 7 years ago

Did you want promote/demote to raise priority? (task priority lvl 1 ) or promote/demote to parent/child task

aawadall commented 7 years ago

what I had in mind initially, is the promote demote of a task to be moving its rank, from being a dependent of it's prerequisite, to become a peer, then become a peer of it's prerequisite's prerequisite but that would work as well for priorities (not mentioned yet in keywords)