{"action":"created","issue":{"url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/106","labels_url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/106/labels{/name}","comments_url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/106/comments","events_url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/106/events","html_url":"https://github.com/farseer90718/vim-taskwarrior/issues/106","id":57226759,"number":106,"title":"\"U\" to show/set/clear urgency coefficients","user":{"login":"linuxcaffe","id":2353531,"avatar_url":"https://avatars.githubusercontent.com/u/2353531?v=3","gravatar_id":"","url":"https://api.github.com/users/linuxcaffe","html_url":"https://github.com/linuxcaffe","followers_url":"https://api.github.com/users/linuxcaffe/followers","following_url":"https://api.github.com/users/linuxcaffe/following{/other_user}","gists_url":"https://api.github.com/users/linuxcaffe/gists{/gist_id}","starred_url":"https://api.github.com/users/linuxcaffe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linuxcaffe/subscriptions","organizations_url":"https://api.github.com/users/linuxcaffe/orgs","repos_url":"https://api.github.com/users/linuxcaffe/repos","events_url":"https://api.github.com/users/linuxcaffe/events{/privacy}","received_events_url":"https://api.github.com/users/linuxcaffe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-02-10T19:49:56Z","updated_at":"2015-02-12T04:21:03Z","closed_at":null,"body":" Urgency co-efficients are one of the things that make taskwarrior unique. It's a a powerful feature that lets users assign a co-efficient to many different attributes, and it drives the order of the \"next\" report, among other things. The function was introduced many years ago (after some badgerring by me) and has been extended and enhanced since then. Current values can be seen using 'task show ...' and as calculated, in the 'task info' report.\r\n\r\nHowever, imho, the feature has not yet reached the point where it can actually be (easily) used as intended. The central idea is that by setting co-efficient values, that match your own ideas of urgency, the \"next\" and ready\" reports will naturally be sorted by the things that are most important to you. Technically, this is possible, but practically, to set a coefficient requires editing a .taskrc configuration line for each coefficient, and the going back and forth to the \"ready\" report, to see how this has been calculated. This is cumbersome, at best, and I believe that users are not getting the benefits that a finely-tuned set of coefficients could provide. I have been thinking about this problem for years, trying to imagine by what means a decent set of co-efficient values could be set up, and I have come to the conclusion that vitw is the only tool that could make this process tolerable. \r\n\r\nHere's how I imagine it could work:\r\n\r\nFirstly, co-efficients can only be applied to certain fields, and an attempt to set an UrgCo for anything else (like a description) should simply fail with an error message. Here's the big list of possible settings, from 'man taskrc;\r\n<pre>\r\nThe urgency calculation uses a polynomial with several terms, \r\neach of which has a configurable coefficient. Those coefficients are:\r\n       urgency.next.coefficient=15.0\r\n              Urgency coefficient for 'next' special tag\r\n       urgency.blocking.coefficient=8.0\r\n              Urgency coefficient for blocking tasks\r\n       urgency.blocked.coefficient=-5.0\r\n              Urgency coefficient for blocked tasks\r\n       urgency.inherit.coefficient=0.0\r\n              Urgency inherited from dependency chain\r\n       urgency.due.coefficient=12.0\r\n              Urgency coefficient for due dates\r\n       urgency.priority.coefficient=6.0\r\n              Urgency coefficient for priorities\r\n       urgency.waiting.coefficient=-3.0\r\n              Urgency coefficient for waiting status\r\n       urgency.active.coefficient=4.0\r\n              Urgency coefficient for active tasks\r\n       urgency.scheduled.coefficient=5.0\r\n              Urgency coefficient for scheduled tasks\r\n       urgency.project.coefficient=1.0\r\n              Urgency coefficient for projects\r\n       urgency.tags.coefficient=1.0\r\n              Urgency coefficient for tags\r\n       urgency.annotations.coefficient=1.0\r\n              Urgency coefficient for annotations\r\n       urgency.age.coefficient=2.0\r\n              Urgency coefficient for the age of tasks\r\n       urgency.age.max=365\r\n              Maximum age in days. After this number of days has elapsed, \r\nthe urgency of a task won't increase any more because of aging.\r\n       urgency.user.tag.<tag>.coefficient=...\r\n              Specific tag coefficient.\r\n       urgency.user.project.<project>.coefficient=...\r\n              Specific project coefficient.\r\n       urgency.uda.<name>.coefficient=...\r\n              Presence/absence of UDA data.\r\n       urgency.uda.<name>.<value>.coefficient=...\r\n              Specific value of UDA data.\r\n       The  coefficients  reflect the relative importance of the various terms in \r\nthe urgency calculation. These are default values, and may be modified to suit \r\nyour preferences, but it is important that you carefully consider any modifications.\r\n</pre>\r\nMany of these settings apply to the presence of an attribute (due, priority, waiting, active, scheduled,project, tags, age, uda.< name >) and to set those values, hitting \"U\" while over a corresponding field-heading, should bring up a prompt;\r\n<pre> \r\nUrgency coefficient:\r\n</pre>\r\n(prepopulated with existing value, if any) to show/set/clear those coefficients. \r\n\r\nFor those UrgCo that apply to specific user-values (user.tag, user.project, uda.< name >.< value >) hitting \"U\" while over a corresponding cel, containing such a value, would bring up the \"Urgency coefficient:\" prompt, to be applied to those user-values. If a user tried to invoke \"U\" while over a blank field, or a field with no associated UrgCo setting, they would get a \"invalid selection\" error message. It would also be illogical to try and set a coefficient In the case of multiple tags, so this would only work on a tag field with a single tag..  \r\n\r\nI am imagining that with this function enabled, and using it while looking at the \"ready\" report, a user could immediately see the effect, tasks rising or falling in the sort order, after each change, and with a relatively quick UrgCo-setting session, could tweak the values to match their own real-world urgency. Without this vitw function, I fear that the taskwarrior concept of fine-grained urgency, will never really be realized, and usable only for a few rude sort overrides. \r\n\r\nThis function, unlike all the others. would directly manipulate values in .taskrc. It's not the simplest feature-request, but it is the only way I can imagine to effecively set taskwarrior coefficients."},"comment":{"url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/comments/74015361","html_url":"https://github.com/farseer90718/vim-taskwarrior/issues/106#issuecomment-74015361","issue_url":"https://api.github.com/repos/farseer90718/vim-taskwarrior/issues/106","id":74015361,"user":{"login":"farseer90718","id":568457,"avatar_url":"https://avatars.githubusercontent.com/u/568457?v=3","gravatar_id":"","url":"https://api.github.com/users/farseer90718","html_url":"https://github.com/farseer90718","followers_url":"https://api.github.com/users/farseer90718/followers","following_url":"https://api.github.com/users/farseer90718/following{/other_user}","gists_url":"https://api.github.com/users/farseer90718/gists{/gist_id}","starred_url":"https://api.github.com/users/farseer90718/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/farseer90718/subscriptions","organizations_url":"https://api.github.com/users/farseer90718/orgs","repos_url":"https://api.github.com/users/farseer90718/repos","events_url":"https://api.github.com/users/farseer90718/events{/privacy}","received_events_url":"https://api.github.com/users/farseer90718/received_events","type":"User","site_admin":false},"created_at":"2015-02-12T04:21:03Z","updated_at":"2015-02-12T04:21:03Z","body":"What will happen when you press U on a project column with value of just 1 word?"}}