Keeping project notes

How do people keep project notes while developing. For example on large projects say you want to modify bits here there and everywhere in tour classes an modules and windows etc what tools do you use to remind yourself.

(Probably pen paper and a notepad but I wondered if there was a better way)

I’m thinking like in my app I have features I will add to my next rev/build but want to note these somewhere and remind myself where the changes need to be made.

I’ve tried all sorts of self-designed apps over the years and discovered that I still rely on pencil and paper.
I’m interested to see what others suggest.

For things that I want to be constantly bugged about until they are done/fixed, I use #pragma warning “Describe the problem here” … applies to bugs found, features that stub code is there but not implemented yet.

It would be nice if Xojo included something in the IDE which listed out your classes etc which you could write notes against. I know you can add notes but they become a bit fragmented all over the place and with the new navigator would just become lost…

Like Jeremy Cowgar I use #pragma warning to annoy myself into fixing things. I also use the Attributes feature built-in to Xojo. Attributes, among other things, can be used to issue manual deprecation warnings and also to hide methods from autocomplete.

How do you use attributes to hide methods from AutoComplete?

Add an attribute named “hidden” (case sensitive) with an empty value.

From User Guide Book 2: Framework, Advanced chapter, Attributes section:

Using Deprecated and Hidden Attributes
The Deprecated and Hidden attributes are reserved and perform special actions when used on a project item (such as a class or module) or a method, property (or constant, etc.) that you can add to a project item.
The Deprecated attribute allows you to indicate that an item “has a replacement”. Set the attribute value to the name of the class/method/property that should be used instead (be sure to enclose the name with quotes).
A deprecated item appears in the Errors Pane when you use Analyze Project.

The Hidden attribute hides the specified item from introspection and auto-complete. You do not need to specify a value.
Both of these attributes may be useful on frameworks that are used by other developers.

Back to your original question, I use two things:

  1. I keep a small notebook on my desk. I jot short-term stuff in it. Nothing permanent.
  2. I use Trello for long-term tasks that I don’t want to forget about. It runs in a browser on the desktop and there are also iPhone and iPad apps. I have Lists for the main areas I work on and create cards within each list for specific items I need to do.

Hey here is a Feature Request… implement TO-DO list functionality such as VB.NET has.
You put comments in your code with a special format, and click a menu item and a sortted, prioritized report is created .

Perhaps this is even something that someone good at IDE scriptting might be able to come up with???

I don’t think that the IDE exposes enough information to the IDE Scripting engine to perform such a task.

How are you reformatting the code if you can’t see the comments???

For tracking overall development actions I make a module “DevNotes” which only has notes and organizes all the to-dos, lists, ideas, changes, references. Placed at the top of the navigator it’s always handy to jot in. Still need a notebook for drawing/sketching and I’ll need to give the warning pragma and attributes a try.

Over the years i’ve tried using tons of project managers and even made my own project-manager (Several of them in fact). But in the end, I’ve always reverted back to a simple single text-file, which I name “ToDo.txt" in the same folder as I keep version-tracking of my source-code for that particular project. I put "” in front of the file-name of the text-file so it always arrives at top of the file-list in the folder (on a mac). I sometimes use the RTFD file-format too, since it supports storing screenshots, images etc along with the todo-list too, to make it simpler to remember what to do.

In that text-file/RTFD-file I use a simple formatting, where I add “New feature: blah blah”, “Bug to fix: blah blah” etc.

Then whenever I’ve fixed/added the features I have written down, i mark them with a simple “***DONE (Version number)” which I put in front of each todo-line entry I’m finished with.

Sometimes it seems the simplest solution possible works the best. And can’t beat the cross-platform freedom of a simple text-file/RTFD-file. If you swap to another OS in future, your todo list will work like a charm on any platform, specially with the RTFD/RTF format.

I access the Text variable exposed which is the content of the current item only. No way to iterate through all the items searching for comments such as // TODO: blah blah blah. I wish there were.