{"id":15034186,"url":"https://github.com/aziz/plaintasks","last_synced_at":"2025-05-14T19:04:54.853Z","repository":{"id":3019163,"uuid":"4038657","full_name":"aziz/PlainTasks","owner":"aziz","description":"An opinionated todo-list plugin for Sublime Text editor (version 2 and 3)","archived":false,"fork":false,"pushed_at":"2024-04-19T01:34:45.000Z","size":655,"stargazers_count":3300,"open_issues_count":91,"forks_count":288,"subscribers_count":105,"default_branch":"master","last_synced_at":"2025-04-12T22:36:07.800Z","etag":null,"topics":["python","sublime-text"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aziz.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-04-16T07:43:52.000Z","updated_at":"2025-04-04T07:45:32.000Z","dependencies_parsed_at":"2024-08-01T19:43:44.538Z","dependency_job_id":"67b1fcc4-14eb-47b0-97eb-319179041c69","html_url":"https://github.com/aziz/PlainTasks","commit_stats":{"total_commits":300,"total_committers":43,"mean_commits":6.976744186046512,"dds":"0.45999999999999996","last_synced_commit":"8edb7703002c0ac6bcad432dce6b59944cdaf702"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziz%2FPlainTasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziz%2FPlainTasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziz%2FPlainTasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziz%2FPlainTasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aziz","download_url":"https://codeload.github.com/aziz/PlainTasks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710405,"owners_count":21149185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","sublime-text"],"created_at":"2024-09-24T20:24:11.120Z","updated_at":"2025-04-13T11:45:48.662Z","avatar_url":"https://github.com/aziz.png","language":"Python","readme":"## [PlainTasks](https://github.com/aziz/PlainTasks) \n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/8d42f3e49d104ab8bf663392661b183b)](https://www.codacy.com/app/allen-bargi/PlainTasks?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=aziz/PlainTasks\u0026amp;utm_campaign=Badge_Grade)\n\nAn opinionated todo-list plugin for Sublime Text (2 \u0026 3) editor\n![](http://cl.ly/image/1q100Q212o2Q/ss.png)\n\n## Installation\nTo install this plugin, you have two options:\n\n1. If you have Package Control installed, simply search for `PlainTasks` to install.\n\n2. Clone source code to Sublime Text packages folder.\n\n## Start a new todo-list\nBring up the command palette (it’s \u003ckbd\u003e⌘ + shift + p\u003c/kbd\u003e in OS X and \u003ckbd\u003ectrl + shift + p\u003c/kbd\u003e in Windows) and type `task` and select `Tasks: New document` command. \n\n**NOTE:** Save your todo files with `todo`, `todolist`, `tasks` or `taskpaper` file extensions or just name them `TODO` with no extension.\nFor more portability you can use `todolist.txt` either as a filename or as suffix for any arbitrary filename.\n\n## Usage\n**NOTE:** In Windows or Linux use \u003ckbd\u003ectrl\u003c/kbd\u003e instead of \u003ckbd\u003e⌘\u003c/kbd\u003e\n\n☐ \u003ckbd\u003e⌘ + enter\u003c/kbd\u003e or \u003ckbd\u003e⌘ + i\u003c/kbd\u003e: new task\n\n☐ \u003ckbd\u003e⌘ + d\u003c/kbd\u003e: toggle task as completed.\n\n☐ \u003ckbd\u003ectrl + c\u003c/kbd\u003e: toggle task as cancelled on Mac. \u003ckbd\u003ealt + c\u003c/kbd\u003e on Windows/Linux.\n\n☐ \u003ckbd\u003e⌘ + shift + a\u003c/kbd\u003e will archive the done tasks, by removing them from your list and appending them to the bottom of the file under Archive project\n\n☐ \u003ckbd\u003e⌘ + shift + o\u003c/kbd\u003e will archive in Org-Mode style, removing the entire subtree after cursor and appending it to new file next to original one, e.g. if original is `filename.TODO` then new would be `filename_archive.TODO`\n\n☐ \u003ckbd\u003e⌘ + shift + u\u003c/kbd\u003e will open the url under the cursor in your default browser, other than http(s) schemes must be enclosed within `\u003c\u003e`, e.g. `\u003cskype:nickname\u003e`\n\n☐ Anything with colon at the end of the line is a project title, you can also nest projects by indenting them. \n\n☐ You can write plain text as notes or descriptions wherever you want. Use `_` or `*` for italic and bold just like in Markdown.\n\n☐ You can add tags using **`@`** sign  \nYou can place cursors on tags, click right mouse button and **Filter by tags under cursors**:\npending tasks with selected tags will remain visible (and their notes and projects they belong to), but everything else will be hidden/folded; to unfold all press \u003ckbd\u003e⌘+k\u003c/kbd\u003e, \u003ckbd\u003e⌘+j\u003c/kbd\u003e or \u003ckbd\u003e⌘+k\u003c/kbd\u003e, \u003ckbd\u003e⌘+0\u003c/kbd\u003e\n\n☐ You can navigate tags in current document via \u003ckbd\u003e⌘+shift+r\u003c/kbd\u003e.\n\n☐ PlainTasks comes with a simple snippet for creating separators, if you feel that your task list is becoming too long you can split it into several sections (and fold some of them) using this snippet:\n\n`--` and then \u003ckbd\u003etab\u003c/kbd\u003e will give you this: `--- ✄ -----------------------`\n\n☐ Completion rules (\u003ckbd\u003ectrl+space\u003c/kbd\u003e or \u003ckbd\u003ealt+/\u003c/kbd\u003e to see list of them):  \n\n- type `t`, press \u003ckbd\u003etab\u003c/kbd\u003e — it’ll become `@today` — this one is highlighted differently than other tags;\n- `c`, \u003ckbd\u003etab\u003c/kbd\u003e — `@critical`;\n- `h`, \u003ckbd\u003etab\u003c/kbd\u003e — `@high`;\n- `l`, \u003ckbd\u003etab\u003c/kbd\u003e — `@low`;\n- `s`, \u003ckbd\u003etab\u003c/kbd\u003e — `@started` — press \u003ckbd\u003etab\u003c/kbd\u003e again and current date will be inserted, when you’ll complete or cancel a task with such tag, you’ll know how many time has passed since start; if you have to change done/cancelled/started time, then you can recalculate the time spent on task by pressing \u003ckbd\u003etab\u003c/kbd\u003e while cursor is placed on a tag;\n- `tg`, \u003ckbd\u003etab\u003c/kbd\u003e, \u003ckbd\u003etab\u003c/kbd\u003e work in the same manner as `s`, but inserts `@toggle(current date)` — so you can pause and resume to get more correct result when done/cancel; each toggle tag is either pause or resume depending on its place in sequence;\n- `cr`, \u003ckbd\u003etab\u003c/kbd\u003e, \u003ckbd\u003etab\u003c/kbd\u003e — `@created(current date)` (\u003ckbd\u003e⌘ + shift + enter\u003c/kbd\u003e creates a new task with this tag);\n- `d`, \u003ckbd\u003etab\u003c/kbd\u003e — `@due( )`  \n  If you press \u003ckbd\u003etab\u003c/kbd\u003e again, it’ll insert current date, same for `@due( 0)`.  \n  You can type short date (similar to [OrgMode’s date prompt](http://orgmode.org/manual/The-date_002ftime-prompt.html), but not the same) and then press \u003ckbd\u003etab\u003c/kbd\u003e to expand it into default format.  \n  Short date should be __`@due(year-month-day hour:minute)`__  \n  Dot can be used instead of hyphen, but should be consistent _`year.month.day`_\n\n    - year, month, minute, hour can be omitted:\n\n        \u003ctable\u003e\n         \u003ctr\u003e\n          \u003cth\u003e  Notation    \u003c/th\u003e\u003cth\u003e   Meaning     \u003c/th\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(1)\u003c/code\u003e    \u003c/td\u003e\n          \u003ctd\u003e  1st day of next month always    \u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(--1)\u003c/code\u003e    \u003c/td\u003e\n          \u003ctd\u003e  1st day of current month always    \u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(5)\u003c/code\u003e    \u003c/td\u003e\n          \u003ctd\u003e  5th day of current month (or next month if current day is 5th or older) \u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(2-3)\u003c/code\u003e  \u003c/td\u003e\n          \u003ctd\u003e  February 3rd of current year or next one    \u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(31 23:)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  31st day of current/next month at 23 hours and minutes are equal to current moment  \u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(16.1.1 1:1)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  January 1st of 2016 at 01:01    \u003ccode\u003e@due(16-01-01 01:01)\u003c/code\u003e  \u003c/td\u003e\n         \u003c/tr\u003e\n        \u003c/table\u003e\n\n    - relative period of time starts with a plus sign or two  \n      __`+[+][number][DdWw][h:m]`__ — number is optional as well as letter `d` for days or letter `w` for weeks.\n\n        \u003ctable\u003e\n         \u003ctr\u003e\n          \u003cth\u003e  Notation    \u003c/th\u003e\u003cth\u003e   Meaning     \u003c/th\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+)\u003c/code\u003e    \u003c/td\u003e\n          \u003ctd\u003e  tomorrow as well as \u003ccode\u003e@due( +1)\u003c/code\u003e or \u003ccode\u003e@due( +1d)\u003c/code\u003e\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+w)\u003c/code\u003e    \u003c/td\u003e\n          \u003ctd\u003e  one week since current date, i.e. \u003ccode\u003e@due( +7)\u003c/code\u003e\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+3w)\u003c/code\u003e  \u003c/td\u003e\n          \u003ctd\u003e  3 weeks since current date, i.e. \u003ccode\u003e@due( +21d)\u003c/code\u003e\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(++)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  one day since \u003ccode\u003e@created(date)\u003c/code\u003e if any, otherwise it is equal to \u003ccode\u003e@due(+)\u003c/code\u003e\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+2:)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  two hours since current date\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+:555)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  555 minutes since current date\u003c/td\u003e\n         \u003c/tr\u003e\n         \u003ctr\u003e\n          \u003ctd\u003e  \u003ccode\u003e@due(+2 12:)\u003c/code\u003e   \u003c/td\u003e\n          \u003ctd\u003e  2 days and 12 hours since current date\u003c/td\u003e\n         \u003c/tr\u003e\n        \u003c/table\u003e\n\n☐ You can create a link to a file within your project by prefixing the file name with a dot and (back)slash like: `.\\filename\\` or `./another filename/`.  \n  The line and column can be specified by colons: `.\\filename:11:8`.  \n  In SublimeText 3 you can specify a symbol inside that file by using \\\u003e character like: `.\\filename\u003esymbol`.  \n  In SublimeText 2 you can specify a text inside that file by using inch characters like: `.\\filename\"any text\"`.  \n  Pressing \u003ckbd\u003ectrl + o\u003c/kbd\u003e (\u003ckbd\u003ealt + o\u003c/kbd\u003e on Windows/Linux) will open the file in Sublime and scroll to specific position if any.  \n  Also in SublimeText 3 link may point to directory, open such link will add the directory to current project (sidebar).  \n  In addition, Markdown and “wiki” (Org-Mode, NV, etc.) styles are supported as well, examples:\n\n```\n[](path)\n[](path \":11:8\")\n[](path \"\u003esymbol\")\n[](path \"any text\")\n[[path]]\n[[path::11:8]]\n[[path::*symbol]]\n[[path::any text]]\n[[path]] \":11:8\"\n[[path]] \"\u003esymbol\"\n[[path]] \"any text\"\n```\n\n☐ To convert current document to HTML, bring up the command palette \u003ckbd\u003e⌘ + shift + p\u003c/kbd\u003e and type `Tasks: View as HTML` — it will be opened in default webbrowser, so you can view and save it.  \n`Tasks: Save as HTML…` ask if you want to save and if yes, allow to choose directory and filename (but won’t open it in webbrowser).\n\n### Editor Useful Tools:\n\n☐ Use **\u003ckbd\u003e⌘ + control + up/down\u003c/kbd\u003e** (**\u003ckbd\u003ectrl + shift + up/down\u003c/kbd\u003e** on Windows) to move tasks up and down.\n\n☐ Use **\u003ckbd\u003e⌘ + r\u003c/kbd\u003e** to see a list of projects and quickly jump between them\n\n\n★ See the [Tutorial](https://github.com/aziz/PlainTasks/blob/master/messages/Tutorial.todo) for more detailed information.\n\n## Settings\nPlainTasks is an opinionated plugin, which means that it is highly configured to look in a specific way, but this does not mean that you can not customize it. If you feel that something does not look right and you want to change it, you can easily do it in your user settings file. \n\nGo to `Preferences → Package Settings → PlainTasks` and open `Settings - User`, there you can override all the default settings, to get an idea you can take a look at `Settings - Default`.\n\nHere is a list of PlainTasks’ specific settings:\n\n|            Setting             |     Default      |                                 Options/Description                                 |\n| ------------------------------ | ---------------- | ----------------------------------------------------------------------- |\n| **open_tasks_bullet**          | `☐`              | `-` `❍` `❑` `■` `□` `☐` `▪` `▫` `–` `—` `≡` `→` `›` `[ ]`             |\n| **done_tasks_bullet**          | `✔`              | `✓` `☑` `+` `[x]`                                                      |\n| **cancelled_tasks_bullet**     | `✘`              | `x` `[-]`                                                               |\n| **date_format**                | `(%y-%m-%d %H:%M)` | See [strfti.me](http://www.strfti.me/) for quick reference; detailed documentation: [ST2](https://docs.python.org/2.6/library/datetime.html#strftime-and-strptime-behavior), [ST3](https://docs.python.org/3.3/library/datetime.html#strftime-and-strptime-behavior) |\n| **done_tag**                   | true             | Determines whether done tasks should gain a `@done` tag or not          |\n| **done_date**                  | true             | Determines whether done tasks should gain a date or not                 |\n| **before_tasks_bullet_margin** | 1                | Determines the number of spaces (default indent) before the task bullet |\n| **project_tag**                | true             | Postfix archived task with project tag, otherwise prefix                |\n| **archive_name**               | `Archive:`       | Make sure it is the unique project name within your todo files          |\n| **new_on_top**                 | true             | How to sort archived tasks (done_tag=true and default date_format are required)|\n| **header_to_task**             | false            | If true, a project title line will be converted to a task on the certain keystroke  |\n| **decimal_minutes**            | false            | If true, minutes in lasted/wasted tags will be percent of hour, e.g. 1.50 instead of 1:30 |\n| **tasks_bullet_space**         | whitespace or tab | String to place after bullet, might be any character(s)                |\n| **highlight_past_due**         | true             | If true, highlight past, soon, and invalid `@due(something)`            |\n| **highlight_due_soon**         | 24               | Hours as int, threshold to define which `@due` will be soon             |\n| **scope_past_due**             | `string.other.tag.todo.critical` | Any scope, define color for past `@due`                 |\n| **scope_due_soon**             | `string.other.tag.todo.high`     | Any scope, define color for `@due` will be soon         |\n| **scope_misformatted**         | `string.other.tag.todo.low`      | Any scope, define color for `@due` mismatch **date_format** |\n| **icon_past_due**              | `\"circle\"`       | Gutter icon¹                                                            |\n| **icon_due_soon**              | `\"dot\"`          | Gutter icon¹                                                            |\n| **icon_misformatted**          | `\"\"`             | Gutter icon¹                                                            |\n| **icon_critical**              | `\"\"`             | Gutter icon¹                                                            |\n| **icon_high**                  | `\"\"`             | Gutter icon¹                                                            |\n| **icon_low**                   | `\"\"`             | Gutter icon¹                                                            |\n| **icon_today**                 | `\"\"`             | Gutter icon¹                                                            |\n| **show_remain_due**            | false            | In Sublime 3, show remain or overdue time under due tags                |\n| **show_calendar_on_tags**      | false            | In Sublime 3, if true, automatically show date picker when cursor is on tag (you can get date picker any time via context menu) |\n| **due_preview_offset**         | 0                | Place preview date outside of parens of `@due()`, 1 — within            |\n| **due_remain_format**          | `\"{time} remaining\"` | `{time}` will be replaced with actual value                         |\n| **due_overdue_format**         | `\"{time} overdue\"` | `{time}` will be replaced with actual value                           |\n\n\u003cb\u003e¹\u003c/b\u003e Icon value can be  `\"dot\"`, `\"circle\"`, `\"bookmark\"`, `\"cross\"`, `\"\"`, or custom relative path to existing png file,\ne.g. `\"Packages/User/my-icon.png\"`.\n\n### Changing color scheme\nIf you don't like colors used in bundled schemes just copy any `.hidden-tmTheme` from PlainTasks to \nyour User directory, change colors and paste the code below in your user settings file:\n\n``` json\n{ \"color_scheme\": \"Path to your custom color scheme file. e.g. Packages/User/custom_plaintasks.hidden-tmTheme\" }\n```\n\n**N.B.**, sometimes you have to restart Sublime Text to apply changes made in tmTheme file.\n\n**N.B.**, `scope_past_due`, `scope_due_soon`, and `scope_misformatted` settings can assign any scopes defined in tmTheme file, e.g. \nyou can set `\"scope_past_due\": \"my.own.super.expired.whatever\"` and then just add style definition in tmTheme for this scope.\n\n### Taskpaper Compatibility\nIf you need to keep your files compatible with Taskpaper, go to \n`Preferences → Package Settings → PlainTasks` and open `Settings - User`, then\nadd these settings to the json file:\n\n```json\n{\n  \"translate_tabs_to_spaces\": false,\n  \"date_format\": \"(%y-%m-%d)\",\n  \"taskpaper_compatible\": true\n}\n```\n\n### Spell check\nIt is build-in feature of Sublime, you can toggle spell check with \u003ckbd\u003eF6\u003c/kbd\u003e.  \nFor convinience, you may add bullets in list of ignored words into **`Preferences → Settings - User`**, e.g.\n\n```json\n{\n  \"ignored_words\": [ \"☐\", \"✔\", \"✘\", \"✄\" ]\n}\n```\n\n## [BONUS] Custom todo icon\nPlainTasks comes with a custom todo icon that you can find in the `icons` folder. You can assign it to your todo files to give them a better look and distinguish them from other plain text files. Google and find out how to assign a custom icon to a file type in your operating system.\n\n![](http://f.cl.ly/items/2t312B30121l2X1l0927/todo-icon.png)\n\n## [BONUS] Custom Statistics\nStatistics of current file are represented in status-bar, based on `stats_format`, which is `\"$n/$a done ($percent%) $progress Last task @done $last\"` by default — as you can see it’s just a string containing special directives (see table bellow) and regular chars.\n\n| Directive    | Description                                           |\n| ------------ | ----------------------------------------------------- |\n| `$o`         | Amount of pending tasks                               |\n| `$d`         | Amount of completed tasks                             |\n| `$c`         | Amount of cancelled tasks                             |\n| `$n`         | Sum of completed and cancelled tasks                  |\n| `$a`         | Sum of all tasks                                      |\n| `$percent`   | Ratio of `$n` to `$a`                                 |\n| `$progress`  | Percent as pseudo graphics (absents if less than 10%) |\n| `$last`      | Date of lastly completed task                         |\n| `{{...}}`    | Return `pending/completed/cancelled` tasks which matched by regex `...`;\u003cbr\u003e e.g. `{{@tag}}` — amounts of tasks with `@tag`; or `{{@a|@b}}` — tasks with either `@a` or `@b` or both.\u003cbr\u003e You may add several `{{...}}` to get separate stats for different tags. |\n\nSo you can customise it as you like, by adding to `Settings - User`, e.g.\n\n```\n{\n    \"stats_format\": \"☐$o ✔$d ✘$c\",\n\n    // if you want the statistics do not include the archived tasks:\n    \"stats_ignore_archive\": true\n}\n```\n\n### Copy statistics\nBring up the command palette and type `Tasks: Copy Statistics`.\n\n### Additional settings for progress bar\n```\n{\n    \"bar_full\": \"■\",   // any char\n    \"bar_empty\": \"☐\", // any char\n\n    // if you want to avoid Unicode when copy stats — you can define replacements\n    // e.g. to convert ■■■■■■☐☐☐☐ to [======    ]\n    \"replace_stats_chars\": [[\" ■\", \" [=\"], [\"■\", \"=\"], [\"☐ \", \" ] \"], [\"☐\", \" \"]]\n}\n```\n\n## Introduction to PlainTasks Screencast\n[![](http://i46.tinypic.com/9ggbd3.png)](https://www.youtube.com/watch?v=LsfGhjRVJwk)\n\n## PlainTasks for other editors\nNOTE: These are separate projects, maintained by some awesome developers other than us.\n- [Atom: Tasks plugin](https://atom.io/packages/tasks)\n- [Vim: Plaintasks.vim](https://github.com/elentok/plaintasks.vim)\n- [Visual Studio Code: To Do Tasks](https://github.com/sandy081/vscode-todotasks)\n- [Visual Studio Code: Todo+](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-todo-plus)\n\n\n## Contributors\n- @antonioriva\n- @binaryannie\n- [Ben Johnson](https://github.com/benjohnson)\n- [Craig Campbell](https://github.com/ccampbell)\n- [Dominique Wahli](https://github.com/bizoo)\n- [Germán M. Bravo](https://github.com/Kronuz)\n- [Hindol Adhya](https://github.com/Hindol)\n- [Jesse Robertson](https://github.com/speilberg0)\n- [Marc Schlaich](https://github.com/schlamar)\n- [Michael McFarland](https://github.com/mikedmcfarland)\n- [Pablo Barrios](https://github.com/sauron)\n- [Stanislav Parfeniuk](https://github.com/travmik)\n- [Vova Kolobok](https://github.com/vovkkk)\n\nYou can contribute on [github](https://github.com/aziz/PlainTasks)\n\n\n## Inspiration\n- Thanks to Chagel for the [iTodo plugin](https://github.com/chagel/itodo).  \n- Thanks to [Taskmate for TextMate](https://github.com/svenfuchs/taskmate).\n- Thanks to [TaskPaper Mac application from hogbaysoftware.com](http://www.hogbaysoftware.com/products/taskpaper)\n\n## License\nCopyright 2012-2013 [Allen Bargi](https://twitter.com/aziz). Licensed under the MIT License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziz%2Fplaintasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faziz%2Fplaintasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziz%2Fplaintasks/lists"}