lint for D
Robert Fraser
fraserofthenight at gmail.com
Thu Jul 10 12:50:29 PDT 2008
Nick Sabalausky Wrote:
> "Ary Borenszweig" <ary at esperanto.org.ar> wrote in message
> news:g54po3$2s7h$1 at digitalmars.com...
> > Bruce Adams a écrit :
> >> On Thu, 10 Jul 2008 02:44:07 +0100, Ary Borenszweig
> >> <ary at esperanto.org.ar> wrote:
> >>
> >>> Bruce Adams a écrit :
> >>>> Hi all,
> >>>> Alas this is not an announcement. It should be relatively easy
> >>>> to knock up a few noddy scripts that can detect some kinds
> >>>> of potential problem.
> >>>
> >>> It should be relatively easy to write a plugin for Descent to do that.
> >>> Something similar to FindBugs for Java (
> >>> http://findbugs.sourceforge.net/ ). Given a source file, you can ask
> >>> Descent for it's AST with complete type resolution. You can apply the
> >>> visitor pattern, which is supported by the AST nodes. You can store in a
> >>> list which variables are declared, and then if they are used in a
> >>> function or are written too, you eliminate them. The remaining entries
> >>> in the list are the unused variables. It's a little harder for
> >>> class/struct members, but it's still relatively easy.
> >>>
> >>> It is both helpful for a developer and for Descent, because the code
> >>> that support that is kind of finished, but it isn't tested much (it's
> >>> only used in highlighting code, which seems to work fine). Of course I
> >>> could do that, but atm I'm adding support for D2, plus it would be
> >>> interesting if anyone else could join the project.
> >>
> >> This is a pet hate of mine. Tool should not be plug-ins for IDEs.
> >
> > The thing is, you write all the code, then, from time to time you run that
> > lint tool. You get 200 warnings. Will you want to correct them? Come on,
> > those are just warnings, and 200 of them! Maybe there's no time, maybe it
> > doesn't worth the effort. And you'd have to open up the code, remember
> > what it was about, understanding it...
> >
>
> Problem goes away with a thing called discipline. It's been about 10 years
> since I've allowed my warning counts to get anywhere near that big, and even
> if it did suddenly happen to me today, there's not a chance I'd allow myself
> to be intimidated by it.
>
> > In an IDE: you finish writing a method. Even while writing at it, you get
> > the warnings. It's easy to correct, you are there, staring at the code. It
> > won't take your time, you have the code in your head, you know why the
> > warning is there and how to remove it. And you do it.
> >
>
> I agree a tool like this should be integrated/integratable into an IDE. BUT,
> there should at least be a command-line version so that you aren't married
> to a specific IDE (or any IDE at all if you happen to be that kind of
> person). I think the eclipse plugin that was proposed sounds great *as a
> start* because, from the sound of it (I wouldn't know, I don't like to use
> Eclipse) it would allow *something* to be out there much more quickly than
> starting a new command-line tool and getting it up to speed. Maybe it could
> even be used for prototyping diagnostic ideas. BUT, I would consider a
> command-line version (even if it were built into the compiler - though I'm
> sure that won't ever happen) to be essential, and something to eventually
> replace (or at least exist side-by-side) the interim Eclipse-based solution.
>
> > Just my thought...
What Ary was saying is that an IDE tool can do the checks while you type.
A command-line tool can't do that. And wrapping a GUI around a different
process is a non-trivial task.
Both tool types have their uses in different situations.
More information about the Digitalmars-d
mailing list