There are problems in my problems tab that I just need deleted. I don't care for them they're adding highlights to my code. I don't need them don't want them but can't delete them.
Why can't I just right-click delete the problems in this tab? It's poor design. I've tried restarting the client, the window, even re-opening this code. The problems are "latched" on with no option to remove.
I'm not trying to remove the highlights. I'm trying to remove the problems itself.
There doesn't appear to be any built in functionality to only remove the problems without removing the highlighting also.
It probably depends on the language server being used, but you can customize which problems you see. For example, take this Python code:
import MyModule
print(myVariable)
MyModule produces a reportMissingImports problem, and myVariable produces a reportUndefinedVariable problem. If you are using Pylance as your Python language server, there is a setting called python.analysis.diagnosticSeverityOverrides that you can use to turn off specific problems (or change their severity). The problem is, you will also lose the highlighting as I mentioned.
Example of the JSON setting for this:
"python.analysis.diagnosticSeverityOverrides": {
"reportUndefinedVariable": "none",
"reportMissingImports": "none"
}
So depending on what programming language you are using, you can probably configure the problems as such. If you are perhaps seeing a lot of the same "pointless" problems that you don't care about, it may be worth turning that problem off (i.e. set its severity to none).
I am looking to develop a framework, for which I dont want get into details.
Suppose if I am having 100+ classes with 1000+ methods in my iPhone application.
In this scenario I want to add NSLog in each method(at start or end or both) of each class.
Manually adding NSLog is possible but is there any better solution?
Like building application in such a way that I can add this Log without me having to do manual work.
Thanks and Regards,
Denis,
Your answer was most useful throughout many forums.
Thanks a lot.
The reason I'm looking for something like this is, we have many client projects and many time it happens that we get some crashing or other issues while QA and UAT. ~80% of them are not reproducible or require some particular scenario. We were using .crash and dsym to track such issues. But it is not that useful in such scenario.
What I'm looking for is providing add hoc build which will log the steps which user has followed so that it will make easy to reproduce such issues.
Currently I am using precompiled headers and first method you have mentioned (searching for the first opening brace then replace it with macro).
I will look into DTrace and objc_msgSend as you mentioned. I will google out these meanwhile if you have any preferred tutorials it will be great.
Thanks and Regards,
:D
So you want to add a trace facility to your code?
Apple doesn't provide anything like this. You'll have to add your trace facility yourself. If your source code style is consistent, this might be relatively easy to do automatically, something like searching for the first opening brace following a line starting with a minus (or plus) sign...
Alternatively, you might want to use the public Objective-C runtime functions to enumerate all classes and all their methods, then method-swizzle each of them with another one that NSLog before jumping to the original.
Alternatively, you can take the open source implementation of objc_msgSend and insert a call to NSLog at the beginning. Note that obj_msgSend tail calls into the method, so that will prevent you from adding a call upon return. Be prepared to humongous output of course. You might want to condition your call to NSLog to the value of the selector parameter to objc_msgSend (such as a common prefix).
Finally, the best way to trace is probably to attach a DTrace probe to the entry to objc_msgSend. For the same tail-call reason mentioned above, you won't be able to attach a DTrace probe to its return though.
But the better question is why do you want to do that.
Is it possible to make the code-completion on Netbeans automatic, like on Aptana or Visual Studio?
I've noticed that Netbeans can sometimes take a while to populate the list, so this might be asking a bit too much, but if possible, I'd like to somehow enable it.
The onlything I've found in the options is the ability to set a custom key-combo, but not to make this automatic.
I know that if you wait a bit, the auto-completion shows up anyway, but I want it to be without delay.
It appears there is a setting in some NetBeans versions that sets the delay for the popup window.
Choose Tools | Options
Choose Advanced Options
Open the Editing and then Editor Settings folders
Select Java Editor and find the Delay of Completion Window Auto Popup property
Enter a new Delay value in milliseconds (default is 250).
Article where I found it: http://www.informit.com/articles/article.aspx?p=519945&seqNum=5
The problem is that this article is a couple years old, so I opened NetBeans (6.1) on my computer and looked for the property but it didn't exist for the Java Editor (It did for other editors like the XML Editor). This leads me to believe my version is newer than the one in the article and the delay property no longer exists for the Java Editor (checking couldn't hurt though).
So instead, I decided to test the delay. I made a sample project, imported and instantiated a list, and then went to call a method. I stopped at the dot to let NetBeans offer suggestions and it was basically immediate (no noticeable delay). It is at this point, I am wondering if the delay you are experiencing is due purely to performance of the computer, especially since you indicate this occurs "sometimes". It is possible that you are looking at rather large classes, and NetBeans is taking extra time to look up the completions. You could try and test to see if this is true or not by testing code completion on a known large class. The other possibility is your computer is not as fast, or is doing work for another program at the same time. You can try and test this by restarting the computer, opening only NetBeans (to maximize resources to NetBeans), and try some code completions. If either exhibit noticeably faster delays, this is most likely the problem.
Hope this helps.
I think I found a solution. I set up autocomplete keyboard shortcuts for all letters and #, it seems to work. In some cases there is a small lag, but it doesn't prevent you from typing. It took about 5 minutes to add those shortcuts.
I tried to get the desired feature by adding the alphabet to the completion selectors. It worked somewhat, you can always try it.
This works for the first two characters you type This is updated one
Goto:
Tools -> Options -> Editor -> Code Completion
Select
Language: [C/C++]
Autopop Triggers for C/C++ Identifiers
.;->;.*;->*;::;new ; a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;aa;ab;ac;ad;ae;af;ag;ah;ai;aj;ak;al;am;an;ao;ap;aq;ar;as;at;au;av;aw;ax;ay;az;ba;bb;bc;bd;be;bf;bg;bh;bi;bj;bk;bl;bm;bn;bo;bp;bq;br;bs;bt;bu;bv;bw;bx;by;bz;ca;cb;cc;cd;ce;cf;cg;ch;ci;cj;ck;cl;cm;cn;co;cp;cq;cr;cs;ct;cu;cv;cw;cx;cy;cz;da;db;dc;dd;de;df;dg;dh;di;dj;dk;dl;dm;dn;do;dp;dq;dr;ds;dt;du;dv;dw;dx;dy;dz;ea;eb;ec;ed;ee;ef;eg;eh;ei;ej;ek;el;em;en;eo;ep;eq;er;es;et;eu;ev;ew;ex;ey;ez;fa;fb;fc;fd;fe;ff;fg;fh;fi;fj;fk;fl;fm;fn;fo;fp;fq;fr;fs;ft;fu;fv;fw;fx;fy;fz;ga;gb;gc;gd;ge;gf;gg;gh;gi;gj;gk;gl;gm;gn;go;gp;gq;gr;gs;gt;gu;gv;gw;gx;gy;gz;ha;hb;hc;hd;he;hf;hg;hh;hi;hj;hk;hl;hm;hn;ho;hp;hq;hr;hs;ht;hu;hv;hw;hx;hy;hz;ia;ib;ic;id;ie;if;ig;ih;ii;ij;ik;il;im;in;io;ip;iq;ir;is;it;iu;iv;iw;ix;iy;iz;ja;jb;jc;jd;je;jf;jg;jh;ji;jj;jk;jl;jm;jn;jo;jp;jq;jr;js;jt;ju;jv;jw;jx;jy;jz;ka;kb;kc;kd;ke;kf;kg;kh;ki;kj;kk;kl;km;kn;ko;kp;kq;kr;ks;kt;ku;kv;kw;kx;ky;kz;la;lb;lc;ld;le;lf;lg;lh;li;lj;lk;ll;lm;ln;lo;lp;lq;lr;ls;lt;lu;lv;lw;lx;ly;lz;ma;mb;mc;md;me;mf;mg;mh;mi;mj;mk;ml;mm;mn;mo;mp;mq;mr;ms;mt;mu;mv;mw;mx;my;mz;na;nb;nc;nd;ne;nf;ng;nh;ni;nj;nk;nl;nm;nn;no;np;nq;nr;ns;nt;nu;nv;nw;nx;ny;nz;oa;ob;oc;od;oe;of;og;oh;oi;oj;ok;ol;om;on;oo;op;oq;or;os;ot;ou;ov;ow;ox;oy;oz;pa;pb;pc;pd;pe;pf;pg;ph;pi;pj;pk;pl;pm;pn;po;pp;pq;pr;ps;pt;pu;pv;pw;px;py;pz;qa;qb;qc;qd;qe;qf;qg;qh;qi;qj;qk;ql;qm;qn;qo;qp;qq;qr;qs;qt;qu;qv;qw;qx;qy;qz;ra;rb;rc;rd;re;rf;rg;rh;ri;rj;rk;rl;rm;rn;ro;rp;rq;rr;rs;rt;ru;rv;rw;rx;ry;rz;sa;sb;sc;sd;se;sf;sg;sh;si;sj;sk;sl;sm;sn;so;sp;sq;sr;ss;st;su;sv;sw;sx;sy;sz;ta;tb;tc;td;te;tf;tg;th;ti;tj;tk;tl;tm;tn;to;tp;tq;tr;ts;tt;tu;tv;tw;tx;ty;tz;ua;ub;uc;ud;ue;uf;ug;uh;ui;uj;uk;ul;um;un;uo;up;uq;ur;us;ut;uu;uv;uw;ux;uy;uz;va;vb;vc;vd;ve;vf;vg;vh;vi;vj;vk;vl;vm;vn;vo;vp;vq;vr;vs;vt;vu;vv;vw;vx;vy;vz;wa;wb;wc;wd;we;wf;wg;wh;wi;wj;wk;wl;wm;wn;wo;wp;wq;wr;ws;wt;wu;wv;ww;wx;wy;wz;xa;xb;xc;xd;xe;xf;xg;xh;xi;xj;xk;xl;xm;xn;xo;xp;xq;xr;xs;xt;xu;xv;xw;xx;xy;xz;ya;yb;yc;yd;ye;yf;yg;yh;yi;yj;yk;yl;ym;yn;yo;yp;yq;yr;ys;yt;yu;yv;yw;yx;yy;yz;za;zb;zc;zd;ze;zf;zg;zh;zi;zj;zk;zl;zm;zn;zo;zp;zq;zr;zs;zt;zu;zv;zw;zx;zy;zz;Aa;Ab;Ac;Ad;Ae;Af;Ag;Ah;Ai;Aj;Ak;Al;Am;An;Ao;Ap;Aq;Ar;As;At;Au;Av;Aw;Ax;Ay;Az;Ba;Bb;Bc;Bd;Be;Bf;Bg;Bh;Bi;Bj;Bk;Bl;Bm;Bn;Bo;Bp;Bq;Br;Bs;Bt;Bu;Bv;Bw;Bx;By;Bz;Ca;Cb;Cc;Cd;Ce;Cf;Cg;Ch;Ci;Cj;Ck;Cl;Cm;Cn;Co;Cp;Cq;Cr;Cs;Ct;Cu;Cv;Cw;Cx;Cy;Cz;Da;Db;Dc;Dd;De;Df;Dg;Dh;Di;Dj;Dk;Dl;Dm;Dn;Do;Dp;Dq;Dr;Ds;Dt;Du;Dv;Dw;Dx;Dy;Dz;Ea;Eb;Ec;Ed;Ee;Ef;Eg;Eh;Ei;Ej;Ek;El;Em;En;Eo;Ep;Eq;Er;Es;Et;Eu;Ev;Ew;Ex;Ey;Ez;Fa;Fb;Fc;Fd;Fe;Ff;Fg;Fh;Fi;Fj;Fk;Fl;Fm;Fn;Fo;Fp;Fq;Fr;Fs;Ft;Fu;Fv;Fw;Fx;Fy;Fz;Ga;Gb;Gc;Gd;Ge;Gf;Gg;Gh;Gi;Gj;Gk;Gl;Gm;Gn;Go;Gp;Gq;Gr;Gs;Gt;Gu;Gv;Gw;Gx;Gy;Gz;Ha;Hb;Hc;Hd;He;Hf;Hg;Hh;Hi;Hj;Hk;Hl;Hm;Hn;Ho;Hp;Hq;Hr;Hs;Ht;Hu;Hv;Hw;Hx;Hy;Hz;Ia;Ib;Ic;Id;Ie;If;Ig;Ih;Ii;Ij;Ik;Il;Im;In;Io;Ip;Iq;Ir;Is;It;Iu;Iv;Iw;Ix;Iy;Iz;Ja;Jb;Jc;Jd;Je;Jf;Jg;Jh;Ji;Jj;Jk;Jl;Jm;Jn;Jo;Jp;Jq;Jr;Js;Jt;Ju;Jv;Jw;Jx;Jy;Jz;Ka;Kb;Kc;Kd;Ke;Kf;Kg;Kh;Ki;Kj;Kk;Kl;Km;Kn;Ko;Kp;Kq;Kr;Ks;Kt;Ku;Kv;Kw;Kx;Ky;Kz;La;Lb;Lc;Ld;Le;Lf;Lg;Lh;Li;Lj;Lk;Ll;Lm;Ln;Lo;Lp;Lq;Lr;Ls;Lt;Lu;Lv;Lw;Lx;Ly;Lz;Ma;Mb;Mc;Md;Me;Mf;Mg;Mh;Mi;Mj;Mk;Ml;Mm;Mn;Mo;Mp;Mq;Mr;Ms;Mt;Mu;Mv;Mw;Mx;My;Mz;Na;Nb;Nc;Nd;Ne;Nf;Ng;Nh;Ni;Nj;Nk;Nl;Nm;Nn;No;Np;Nq;Nr;Ns;Nt;Nu;Nv;Nw;Nx;Ny;Nz;Oa;Ob;Oc;Od;Oe;Of;Og;Oh;Oi;Oj;Ok;Ol;Om;On;Oo;Op;Oq;Or;Os;Ot;Ou;Ov;Ow;Ox;Oy;Oz;Pa;Pb;Pc;Pd;Pe;Pf;Pg;Ph;Pi;Pj;Pk;Pl;Pm;Pn;Po;Pp;Pq;Pr;Ps;Pt;Pu;Pv;Pw;Px;Py;Pz;Qa;Qb;Qc;Qd;Qe;Qf;Qg;Qh;Qi;Qj;Qk;Ql;Qm;Qn;Qo;Qp;Qq;Qr;Qs;Qt;Qu;Qv;Qw;Qx;Qy;Qz;Ra;Rb;Rc;Rd;Re;Rf;Rg;Rh;Ri;Rj;Rk;Rl;Rm;Rn;Ro;Rp;Rq;Rr;Rs;Rt;Ru;Rv;Rw;Rx;Ry;Rz;Sa;Sb;Sc;Sd;Se;Sf;Sg;Sh;Si;Sj;Sk;Sl;Sm;Sn;So;Sp;Sq;Sr;Ss;St;Su;Sv;Sw;Sx;Sy;Sz;Ta;Tb;Tc;Td;Te;Tf;Tg;Th;Ti;Tj;Tk;Tl;Tm;Tn;To;Tp;Tq;Tr;Ts;Tt;Tu;Tv;Tw;Tx;Ty;Tz;Ua;Ub;Uc;Ud;Ue;Uf;Ug;Uh;Ui;Uj;Uk;Ul;Um;Un;Uo;Up;Uq;Ur;Us;Ut;Uu;Uv;Uw;Ux;Uy;Uz;Va;Vb;Vc;Vd;Ve;Vf;Vg;Vh;Vi;Vj;Vk;Vl;Vm;Vn;Vo;Vp;Vq;Vr;Vs;Vt;Vu;Vv;Vw;Vx;Vy;Vz;Wa;Wb;Wc;Wd;We;Wf;Wg;Wh;Wi;Wj;Wk;Wl;Wm;Wn;Wo;Wp;Wq;Wr;Ws;Wt;Wu;Wv;Ww;Wx;Wy;Wz;Xa;Xb;Xc;Xd;Xe;Xf;Xg;Xh;Xi;Xj;Xk;Xl;Xm;Xn;Xo;Xp;Xq;Xr;Xs;Xt;Xu;Xv;Xw;Xx;Xy;Xz;Ya;Yb;Yc;Yd;Ye;Yf;Yg;Yh;Yi;Yj;Yk;Yl;Ym;Yn;Yo;Yp;Yq;Yr;Ys;Yt;Yu;Yv;Yw;Yx;Yy;Yz;Za;Zb;Zc;Zd;Ze;Zf;Zg;Zh;Zi;Zj;Zk;Zl;Zm;Zn;Zo;Zp;Zq;Zr;Zs;Zt;Zu;Zv;Zw;Zx;Zy;Zz;aaa;aab;aac;aad;aae;aaf;aag;aah;aai;aaj;aak;aal;aam;aan;aao;aap;aaq;aar;aas;aat;aau;aav;aaw;aax;aay;aaz;aba;abb;abc;abd;abe;abf;abg;abh;abi;abj;abk;abl;abm;abn;abo;abp;abq;abr;abs;abt;abu;abv;abw;abx;aby;abz;aca;acb;acc;acd;ace;acf;acg;ach;aci;acj;ack;acl;acm;acn;aco;acp;acq;acr;acs;act;acu;acv;acw;acx;acy;acz;ada;adb;adc;add;ade;adf;adg;adh;adi;adj;adk;adl;adm;adn;ado;adp;adq;adr;ads;adt;adu;adv;adw;adx;ady;adz;aea;aeb;aec;aed;aee;aef;aeg;aeh;aei;aej;aek;ael;aem;aen;aeo;aep;aeq;aer;aes;aet;aeu;aev;aew;aex;aey;aez;afa;afb;afc;afd;afe;aff;afg;afh;afi;afj;afk;afl;afm;afn;afo;afp;afq;afr;afs;aft;afu;afv;afw;afx;afy;afz;aga;agb;agc;agd;age;agf;agg;agh;agi;agj;agk;agl;agm;agn;ago;agp;agq;agr;ags;agt;agu;agv;agw;agx;agy;agz;aha;ahb;ahc;ahd;ahe;ahf;ahg;ahh;ahi;ahj;ahk;ahl;ahm;ahn;aho;ahp;ahq;ahr;ahs;aht;ahu;ahv;ahw;ahx;ahy;ahz;aia;aib;aic;aid;aie;aif;aig;aih;aii;aij;aik;ail;aim;ain;aio;aip;aiq;air;ais;ait;aiu;aiv;aiw;aix;aiy;aiz;aja;ajb;ajc;ajd;aje;ajf;ajg;ajh;aji;ajj;ajk;ajl;ajm;ajn;ajo;ajp;ajq;ajr;ajs;ajt;aju;ajv;ajw;ajx;ajy;ajz;aka;akb;akc;akd;ake;akf;akg;akh;aki;akj;akk;akl;akm;akn;ako;akp;akq;akr;aks;akt;aku;akv;akw;akx;aky;akz;ala;alb;alc;ald;ale;alf;alg;alh;ali;alj;alk;all;alm;aln;alo;alp;alq;alr;als;alt;alu;alv;alw;alx;aly;alz;ama;amb;amc;amd;ame;amf;amg;amh;ami;amj;amk;aml;amm;amn;amo;amp;amq;amr;ams;amt;amu;amv;amw;amx;amy;amz;ana;anb;anc;and;ane;anf;ang;anh;ani;anj;ank;anl;anm;ann;ano;anp;anq;anr;ans;ant;anu;anv;anw;anx;any;anz;aoa;aob;aoc;aod;aoe;aof;aog;aoh;aoi;aoj;aok;aol;aom;aon;aoo;aop;aoq;aor;aos;aot;aou;aov;aow;aox;aoy;aoz;apa;apb;apc;apd;ape;apf;apg;aph;api;apj;apk;apl;apm;apn;apo;app;apq;apr;aps;apt;apu;apv;apw;apx;apy;apz;aqa;aqb;aqc;aqd;aqe;aqf;aqg;aqh;aqi;aqj;aqk;aql;aqm;aqn;aqo;aqp;aqq;aqr;aqs;aqt;aqu;aqv;aqw;aqx;aqy;aqz;ara;arb;arc;ard;are;arf;arg;arh;ari;arj;ark;arl;arm;arn;aro;arp;arq;arr;ars;art;aru;arv;arw;arx;ary;arz;asa;asb;asc;asd;ase;asf;asg;ash;asi;asj;ask;asl;asm;asn;aso;asp;asq;asr;ass;ast;asu;asv;asw;asx;asy;asz;ata;atb;atc;atd;ate;atf;atg;ath;ati;atj;atk;atl;atm;atn;ato;atp;atq;atr;ats;att;atu;atv;atw;atx;aty;atz;aua;aub;auc;aud;aue;auf;aug;auh;aui;auj;auk;aul;aum;aun;auo;aup;auq;aur;aus;aut;auu;auv;auw;aux;auy;auz;ava;avb;avc;avd;ave;avf;avg;avh;avi;avj;avk;avl;avm;avn;avo;avp;avq;avr;avs;avt;avu;avv;avw;avx;avy;avz;awa;awb;awc;awd;awe;awf;awg;awh;awi;awj;awk;awl;awm;awn;awo;awp;awq;awr;aws;awt;awu;awv;aww;awx;awy;awz;axa;axb;axc;axd;axe;axf;axg;axh;axi;axj;axk;axl;axm;axn;axo;axp;axq;axr;axs;axt;axu;axv;axw;axx;axy;axz;aya;ayb;ayc;ayd;aye;ayf;ayg;ayh;ayi;ayj;ayk;ayl;aym;ayn;ayo;ayp;ayq;ayr;ays;ayt;ayu;ayv;ayw;ayx;ayy;ayz;aza;azb;azc;azd;aze;azf;azg;azh;azi;azj;azk;azl;azm;azn;azo;azp;azq;azr;azs;azt;azu;azv;azw;azx;azy;azz;
Good Luck!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm one of those people who can't get anything done without a to-do list. If it isn't on the list it doesn't exist.
Notepad Method:
When I'm programming I've been keeping notepad open with a list of to-do's for my current project. I'll constantly re-arrange these based off priority and I cross them off and move them to the completed section when I'm finished with that particular task.
Code Comments:
Some programmers pepper their projects source code with:
// TODO: Fix this completely atrocious code before anyone sees it
Plus, I know that there are some tools that show you a list of all TODOs in your code as well.
Website Task Tracker:
Remember The Milk
Backpack
Manymoon
Voo2do
Gmail Tasks
TeuxDeux
TodoDodo
Ta-da lists
... and many more
What have you found to be the best method of keeping track of your to-do lists for multiple projects?
Like others, I pepper them about my code, but I use the warning directive to generate a compiler warning too:
#warning TODO: Implement foobar
This way I can still search for "TODO" but they also shout at me whenever I build.
Pen and paper.
Combined with the genious PocketMod, it's totally perfect.
Striking TODOs is soooo satisfying!
I can't speak for other IDE's, but Eclipse will search your project's source files for TODO comments (as well as FIXME and XXX by default) and create tasks for you in the tasks view.
This leads to intriguing situations where you check the tasks view, double-click on a TODO task, and read the comment:
// TODO: Add this functionality.
Eclipse will also add TODO comments when generating certain code blocks, like method implementations, catch blocks for exceptions, etc.
TODO (and other) comments are great with Visual Studio and ReSharper installed:
(source: jetbrains.com)
Although I didn't try it I really like the idea of tests as todos. What else should get you going if not a failed test?
NextAction, from TimeSnapper
Personal Abstract Todos
I use Tomboy Notes or paper to make a quick list of abstract high level tasks. Often when I'm on the phone with my manager, I just need to get things written down.
Source Code Specfic Todos
I use the inline TODO: / #todo comment marker in my code and then use the Netbeans plugins that give me a running list of todos throughout the project. Since Netbeans can aggregate todo markers from multiple projects, it does not make a difference how many different projects I'm running.
Multiperson Tasks / Todos
Once I have to keep track of todos for more than myself, I move to project management software like OpenProj, MS Project, etc. Also, if the todos involve bugs or feature requests, I use our bugtracker. Other todos, can be manged by a helpdesk system as well.
I use ToDoList from AbstractSpoon. It lets you divide your ToDo list into projects and can even be used by a number of users for larger projects using a shared network drive.
For every task in a project i create a new entry in the issue tracker (Bugzilla for me).
A big advantage is that you can track back every changes made by the issue ID.
You can report customers or project members the status of your task.
You can create a new bug type like "task", "todo" or "feature-request".
It's a central solution. No local stuff...
I our development team there is a rule which says: "Do never change any code without a corresponding entry in the issue tracker. Never!"
I use Pen and Paper to jot down notes. I also use TODO/FIXME tags in code that gets highlighted yellow in Vim and tracked by the TODO extension in Komodo.
One of the most useful additions for me has been using Samurize to embed a plain text file onto my desktop (http://lifehacker.com/software/plain-text/geek-to-live--incorporate-text-files-onto-your-desktop-213280.php). I have 3 virtual desktops and it lives on my email desktop which is where I wind up first thing every morning. It contains a text file with the items that I need to do and it rarely runs more than a week ahead.
Wednesday 2/11/2009
- Item 1
- Item 2
Thursday 2/12/2009
- Item 3
I use Executor that has a keyword "todo" that automatically opens gvim with this file when I want to edit/add/remove items. This makes it about 3 keystrokes to get it open and ready to modify. It helps me remember the Monday morning production moves before I get buried in email and meetings. As soon as I edit, it's reflected on the desktop.
Obviously for longer and more detailed things, I rely on Roundup, Outlook reminders, etc. but this has been a handy way to jot things down so they won't get lost in the shuffle.
I use inline TODO: comments as Visual Studio will track these for me, of course I still have to look at the task list to see them. I cannot count the number of times I have found a TODO: comments whilst reviewing some code I thought was complete.
I would make a clear difference between FIXME and TODO. FIXME is a critical and must be fixed before commit/release. TODO can live a bit longer but should be cleaned away eventually.
A simple plain text file (TODO) in the top level of the project's cvs/svn area works for me for simple projects.
Like others have mentioned, I use the standard FIXME/TODO/XXX in my code comments, and then can find the list of tasks within my IDE using their various tools. I also use hudson's task scanner plugin to keep track of everything, since I'm a sucker for graphs.
I created a build task that picks out //TODO: lines from my code files and generates a report I include in team city. It gives you a quick way of see any outstandings on a project without having to check it out.
you can also use the CodeTagsPlugin with Trac
When programming Java in Eclipse, I find it really useful to, as you say "pepper my source code with // TODO: comments - mainly because Eclipse looks up each one in the project and compiles a task list for me =) In Visual Studio, there is a Task List panel, which I use sometimes, but I don't find it as streamlined as just having the comments in Eclipse.
I use eclipse as IDE, which collects all TODO's to a list and shows it in an outline. Very easy and usable.
I use emacs org-mode to keep track of not only code TODOs, but my whole life. It works as an extremely powerful outliner with some spreadsheet and calendar features as well. I use mercurial for lightweight version handling and simple replication between different machings.
It works surprisingly well.
Having done an extensive search for a suitable "to do list" application I settled on mylyn - the one that comes supplied with Eclipse.
It is easy to create and manage tasks. Tasks can be imported and linked to Bugzilla or a number of other different task repositories. It also has a "task context" which enables files that are relevant to a task to be highlighted and those that are irrelevant to be hidden (which is far more useful than I anticipated it would be).
Eclipse tracks your TODO and list them in a proper windows automatically. I find it powerful enough if you don't need advanced features.
I'm quite fond of tracks. It has the flavour of GTD without getting too regimented about it.
I can quickly whack stuff in there as I think of it, and then not have to worry about forgetting after that.
Wow, I just had this question yesterday. After some searching, I settled on the ReminderFox Firefox extension. It's completely integrated into the browser and has pop ups to remind you every time you open your browser when a task is due.
I like Mylyn a lot: integrated into Eclipse, works with many trackers as well as without (local tasks) and realizes new concepts like the focused UI.
There is also Task Scanner Plugin for Hudson (in case it fits in your environment). With that you can track number of TODOs/FIXMEs on your continuous integration build reports.
alt text http://www.86th.org/hudson.jpg
We use the "Open Tasks Trend" feature in Hudson, this works for a slew of languages. For our C# project we have 3 levels of tasks and this is accomplished by different TODO: style comments.
High Priority
Matches on FIXME:, HARDCODED: or HACK:
Medium Priority
Matches on TODO:
Low Priority
Matches on MEH: or CODEREVIEW:
Hudson will then take this list and trend graph it as shown in the picture, as well as have a sortable, filterable list of the tasks and it will display the messages on the web page with links that will take you right to the line in the source code on Hudson.
Plus we can easily setup points of interest for code reviews with CODEREVIEW: and have a nice concise list to print out.
I use Sandglaz and place my todos in 3 columns now, next and later (a little like their blog, but only one row)...and its easy and fast to use. I'm a freelancer so I work on several projects at a time so it works for me
I use pending tests only to remind myself to write tests. I use Rspec, so it has that build it.
For C++ projects (native/ATL):
#ifndef _TODO_H_
#define _TODO_H_
#pragma once
// from atldef.h:
#ifndef _ATL_STRINGIZE
#define __ATL_STRINGIZE(_Value) #_Value
#define _ATL_STRINGIZE(_Value) __ATL_STRINGIZE(_Value)
#endif
// put x in quotes, no need to use #pragma!
#define __TODO(x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : TODO: "x))
#define __WTF(x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : WTF?! "x))
// prefer to use ISO-formatted date
#define __BUGFIX(date, x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : BUGFIX: "#date" "x))
#define __CHANGE(date, x) __pragma(message(__FILE__"("_ATL_STRINGIZE(__LINE__)") : CHANGE: "#date" "x))
#endif _TODO_H_
Looking for something like that for C#.
doxygen can track such issues
One of our source code modules is absolutely littered with inline #pragma todo lines. The build output is polluted so we never can really tell when there are any new compiler warnings. Some of the todos have been there for years and the original developer has long since left the company.
When I have many many todos I discovered that it is useless to track them. You end up with hundreds of todos that can't be done.
Only write what you are asked (boss ) and do what bring the biggest benefits everyday.
I however have a next list. I wrote what I'm currently doing at the top and things I need to fix to complete it. My next list can be done in hours or days usually.