Show HN: Summarise all code annotation like TODO or FIXME
github.com
github.com
This is a very minor, nigh silly, project but this sort of wanton bifurcation hurts open source's reputation and is already a huge problem in the Node community.
Then, your choice of words is not ideal:
>NOTE: I no longer actively maintain this package. I'd love to get PRs to keep it going though!
If it's not maintained anymore then I as a developer don't really gain anything (bugfixes, features) by submitting a PR vs. just forking myself. So the choice to fork is understandable, even if it's not what you intended to happen.
[1] https://arstechnica.com/information-technology/2014/10/how-d...
I think the issue is less about license and more about what is good form and helps to keep the ecosystem a bit less cluttered.
Forking is fine, merging two packages is fine, removing the authors name from the license (while leaving his name all over the rest of the package, which shows that there is no malicious intent, merely some confusion) is not.
Not doing that is not nice, and in the worst case could get you in legal trouble.
Original license: https://github.com/JohnPostlethwait/fixme/blob/master/LICENS... Your license: https://github.com/ahmadassaf/code-notes/blob/master/LICENSE...
[1] http://softwareengineering.stackexchange.com/questions/17823...
I missed that with no intention of ignoring the great work of John
README.md:149: * Must have one of the words: NOTE, OPTIMIZE, TODO, HACK, XXX, FIXME, or BUG
which brought this from the readme file but it was not a "real" to do.
you can then start thinking of passing regex to the grep, and trying to catch all the other annotations like FIXME, NOTE, etc. and then again you need a way to start ignoring certain files, maybe you do not want to check all the files in your node_modules, etc.
All in all, this module is just a little helper that tries to solve all these little issues.
Thanks for the pointer :)
I think a script with a few grep invocations for all code files with lines containing TODO/FIXME etc. is about right, takes minutes to set up and will work for all but the most obscure cases.
It'll easily deal with your README.md case.
https://gist.github.com/thedjinn/17c68d1e62b5594581625c016b0...
This would be pretty trivial with the Sublime CLI, for example in Python:
import os
os.system('subl foo.py:10') notes -x *.git/ -x *.png
in general if you want to exclude hidden files and folders you need to run it with -h true which excludes hidden dirs and files, so you can run notes -h true -x *.pngIt is for the same reason that `rg`/`ag`/`pt` are used nowadays instead of `grep`. 99.99% of the time, you don't want to search files that are ignored by your VCS, and you want to search recursively, and also probably in a case-insensitive way. For `grep` you have to fight with tons of options to filter out files, to enable recursivity and to ignore case. With `ag`? just `ag whatever`.
Defaults make the difference.
const BAD_EXTENSIONS = ["!*.jpg", "!*.jpeg", "!*.mov", "!*.mp3", "!*.gif", "!*.png", "!*.log", "!*.bin", "!*.psd", "!*.swf", "!*.fla", "!*.ico"];
I was wondering why `.png` was scanned. However, your comment makes so much sense and it will be wise to add default folders like .git as wellThanks a lot for that, ill be looking forward to what defaults people also want to have :)
PS: Another idea: Instead of selecting manually what extensions should be used or not, you may want to try being more general, like enabling by default all text-like files, and disabling all data-like files. Maybe with `file --mime` then looking at charset value:
test.jpg: image/jpeg; charset=binary
manage.py: text/x-python; charset=us-asciiExample:
rm -rf *Thanks for the pointer
notes -i *.py
I hope this helps :)https://gitlab.com/willemmali-sh/todo
PR's/issues welcome!
https://gitlab.com/willemmali-sh/todo
Fresh off the press, please let me know if you have feature requests or find bugs.
Edit: is my tone off-putting or did I break some social norm here?
If not, I'd greatly appreciate some feedback, I'm newish to sh programming and CLI design in general.