Find all your TODO notes with one command!

Overview

Todo_r

Actions Status Build Status

Find all your notes with one command!

Todo_r is a simple rust command line utility that keeps track of your todo items in code. It is pronounced "todoer" like someone that does todos.

Find all your TODO notes with one command!

A lot is adapted from leasot but runs much faster.

Installation

The latest release can be downloaded from the releases page.

If you use macOS Homebrew or Linuxbrew you can currently install the latest version using

$ brew tap lavifb/todo_r https://github.com/lavifb/todo_r.git
$ brew install todor

Features

  • Reads TODO comments that are on their own line.
// TODO: do this
/* TODO: do that */

Note: comments that are not on their own line are not supported.

  • User references are tracked and can be found using --user flag.
// TODO(user1): item
// TODO: tagging @user2 and @user3
// TODO(user1): @user3 both are also found!

Comments 1 and 3 are found with todor -u user1.

  • Custom tags can be searched using the -t flag.
  • Interactive mode for deleting comments is launched using the -d flag.
  • If files are not provided for input, todo_r searches the entire git repository.
    • .gitignore files are respected
    • More ignores can be added using .todorignore files that use the same syntax
    • If you are not using git, you can instead use a .todor file in the root directory

Config files

Create a .todor file in the root of your workspace with todor init.

.todor files can also used as a config file to set custom tags, comments types, output styles, etc.

Todo_r also supports a global config file at $XDG_CONFIG_HOME/todor/todor.conf (default ~/.config/todor/todor.conf) for Mac/Linux and ~\AppData\Roaming\lavifb\todor\todor.conf on Windows.

A deeper explanation of config files can be found at config.md.

Default Language Support

These common languages are supported by default. More support can be added using config files above.

Filetype Extensions Comment Types
C/C++ .c,.h,.cpp //,/* */
C# .cs //,/* */
CoffeeScript .coffee #
Go .go //,/* */
Haskell .hs --
HTML .html,.htm <!-- -->
Java .java //,/* */
JavaScript .js,.es,.es6 //,/* */
Obj-C/C++ .m,.mm //,/* */
Less .less //,/* */
Markdown .md <!-- -->
Perl .pl,.pm #
PHP .php //,/* */
Python .py #,""" """
Ruby .rb #
Rust .rs //,/* */
Sass .sass,scss //,/* */
Scala .scala //,/* */
Shell .sh,.bash,.zsh #
SQL .sql --,/* */
Stylus .styl //,/* */
Swift .swift //,/* */
TeX .tex %
TypeScript .ts,.tsx //,/* */
YAML .yaml,.yml #

If there are any more languages/extensions that you feel should supported by default, feel free to submit an issue/pull request.


written by Lavi Blumberg

You might also like...
todo2(a.k.a. todo or die) - A better todo! macro inspired from searls/todo_or_die

todo2 todo2(a.k.a. todo or die) - A better todo! macro inspired from searls/todo_or_die This crate provides a better todo! macro, which allows you to

A simple menu to keep all your most used one-liners and scripts in one place
A simple menu to keep all your most used one-liners and scripts in one place

Dama Desktop Agnostic Menu Aggregate This program aims to be a hackable, easy to use menu that can be paired to lightweight window managers in order t

A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.
A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.

Welcome to rust-qrcode-cli 👋 A CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal. Install git clon

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find
fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.

Create tasks and save notes offline from your terminal

Create tasks and save notes offline from your terminal

Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json file and discord webhook.

minecraft-honeypot Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json f

Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. After all it's just a cat.
Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. After all it's just a cat.

Bongo Copy Cat Introduction Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. Afte

A super simple /sbin/init for Linux which allows running one and only one program

Summary High-performance /sbin/init program for Linux This is designed to do literally nothing but accept binaries over the network and run them as a

Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang.
In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang.

Learn Rust What is this? In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang. This is usef

Quickly find all blackhole directories with a huge amount of filesystem entries in a flat structure
Quickly find all blackhole directories with a huge amount of filesystem entries in a flat structure

findlargedir About Findlargedir is a tool specifically written to help quickly identify "black hole" directories on an any filesystem having more than

Scan all IP nodes of CloudFlare to find the fastest IP node.
Scan all IP nodes of CloudFlare to find the fastest IP node.

中文版 | English 📖 Introduction Scan all IP nodes of CloudFlare to find the fastest IP node. ⚡️ Get Started 🔨️ Build git clone https://github.com/golan

One-Stop Solution for all boilerplate needs!
One-Stop Solution for all boilerplate needs!

One Stop Solution for all boilerplate needs! Consider leaving a ⭐ if you found the project helpful. Templa-rs Templa-rs is a one-of-a-kind TUI tool wr

Dangerously fast dns/network/port scanner, all-in-one
Dangerously fast dns/network/port scanner, all-in-one

Skanuvaty Dangerously fast dns/network/port scanner, all-in-one. Start with a domain, and we'll find everything about it. Features: Finds subdomains f

1️⃣ el lisp number uno - one lisp to rule them all 🏆

luno el lisp number uno luno is the one lisp to rule them all. Still experimental, do not use it in production yet. goals embeddable small size simple

Godout is an addon that hopes to package all kinds of exports under one repository.

Godout Godout is an addon that hopes to package all kinds of exports under one repository. Why? Godot is one of the best game engines out there and ha

One copy of Electron to rule them all.

chroma One copy of Electron to rule them all. chroma keeps a central, up-to-date version of Electron, and makes all your installed Electron apps use i

An all-in-one IBC protocol providing fungible token transfer, interchain account, and async query functionalities

ICS-999 An all-in-one IBC protocol providing fungible token transfer, interchain account (ICA), and query (ICQ) functionalities, implemented in CosmWa

Comments
  • Empty TODOs

    Empty TODOs

    Is it possible to include TODOs that have empty text?

    I have two TODOs (in different places of the same file):

    // TODO: get list of args
    ...
    // TODO:
    

    When running todor I see only one:

    PS > todor -V
    Todo_r 0.7.2
    PS > todor
    filelist\src\lst.rs
      line 964    TODO   get list of args
    
    opened by VladimirMarkelov 10
  • Name of the first file is invisible

    Name of the first file is invisible

    Windows 7 64 bit Cmder 1.3.5 (instead of Windows built-in CMD/PowerShell)

    The name of the first file is always invisible (unless I select the text in terminal, so it looks like it is printed with a color close to a background one), but names of all next files are visible. Red arrow shows the line with the "invisible" file name:

    todor_first_file

    opened by VladimirMarkelov 2
  • fix travis build for windows

    fix travis build for windows

    Travis installs x86_64-pc-windows-msvc for Windows, but the build script tries to build with target x86_64-pc-windows-gnu, causing the Windows Travis builds to fail.

    opened by cdmistman 1
Releases(v0.7.3)
Owner
Lavi Blumberg
Lavi Blumberg
Checks all your documentation for spelling and grammar mistakes with hunspell and a nlprule based checker for grammar

cargo-spellcheck Check your spelling with hunspell and/or nlprule. Use Cases Run cargo spellcheck --fix or cargo spellcheck fix to fix all your docume

Bernhard Schuster 274 Nov 5, 2022
Find and replace text in source files

Ruplacer Find and replace text in source files: $ ruplacer old new src/ Patching src/a_dir/sub/foo.txt -- old is everywhere, old is old ++ new is ever

Tanker 331 Dec 28, 2022
Find files (ff) by name, fast!

Find Files (ff) Find Files (ff) utility recursively searches the files whose names match the specified RegExp pattern in the provided directory (defau

Vishal Telangre 310 Dec 29, 2022
A command line tool for renaming your ipa files quickly and easily.

ipa_renamer A command line tool for renaming your ipa files quickly and easily. Usage ipa_renamer 0.0.1 A command line tool for renaming your ipa file

Noah Hsu 31 Dec 31, 2022
An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.

regex A Rust library for parsing, compiling, and executing regular expressions. Its syntax is similar to Perl-style regular expressions, but lacks a f

The Rust Programming Language 2.6k Jan 8, 2023
A command-line tool and library for generating regular expressions from user-provided test cases

Table of Contents What does this tool do? Do I still need to learn to write regexes then? Current features How to install? 4.1 The command-line tool 4

Peter M. Stahl 5.8k Dec 30, 2022
Zero-grammer definition command-line parser

zgclp Zgclp (Zero-grammar definition command-line parser) is one of Rust's command-line parsers. A normal command-line parser generates a parser from

Toshihiro Kamiya 1 Mar 31, 2022
A todo list app that indexes your app to find TODO:'s

forgot A todo list app that indexes your app to find TODO:'s Usage to list all your todos forgot list list all your todos ignoring search in ./target,

null 2 Oct 6, 2022
Rust Programming Fundamentals - one course to rule them all, one course to find them...

Ultimate Rust Crash Course This is the companion repository for the Ultimate Rust Crash Course published online, presented live at O'Reilly virtual ev

Nathan Stocks 1.3k Jan 8, 2023
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

M4jrT0m 1 Dec 24, 2021