beyondgrep / ack3

ack is a grep-like search tool optimized for source code.
https://beyondgrep.com/
Other
701 stars 66 forks source link

Create --lazarus and --pascal file types #300

Open maugly24 opened 4 years ago

maugly24 commented 4 years ago

I've been using using ack since 2015 with a great love for very different projects (Apache open source java, scala, etc.)

Recently I've started to work on different Pascal projects as well, and found a bit clumsy there is no --pascal and --lazarus file types, but --delphi does exist (though I think nowadays FPC and Lazarus is more well spread than the commercial Delphi line).

So IMHO it would be great to have these types as standard part of ack3, and not just stored in my own ~/.ackrc like:

# Lazarus (Free Pascal)
# https://en.wikipedia.org/wiki/Lazarus_(IDE)
--type-add=lazarus:ext:lpi,lpr,lfm,p,pp,pas,inc,lpk,rc,po

# Pascal
# https://en.wikipedia.org/wiki/Pascal_(programming_language)
--type-add=pascal:ext:p,pp,pas,inc

I've also implemented in my own fork, so we could easily create a PR from it any time.

petdance commented 4 years ago

How long have you been using these specs in your .ackrc?

Why does Lazarus have so many extensions?

maugly24 commented 4 years ago

Hi @petdance ,

1-2 month or so.

Lazarus: Same as Deplhi. Forms file, Project files, etc. ( https://wiki.freepascal.org/Lazarus_project_files ). IMHO those files which are VCS - yes (except ICO ) should be searchable by this mode.

n1vux commented 4 years ago

Wikipedia provides some support towards notability of Free Pascal - it documents usages of Free Pascal / Lazarus in other FLOSS projects. https://en.wikipedia.org/wiki/Free_Pascal#Examples_of_software_produced_with_Free_Pascal

petdance commented 4 years ago

If Lazarus is the IDE, then I don't think I want to include its support files.

maugly24 commented 4 years ago

It's not the IDE!

It's the RAD/GUI framework like Delphi

On Mar 6, 2020 10:36 PM, Andy Lester notifications@github.com wrote:

If Lazarus is the IDE, then I don't think I want to include its support files.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/beyondgrep/ack3/issues/300?email_source=notifications&email_token=ADUGCIB6RDDLDBYWCVYCN3TRGFUE5A5CNFSM4LDCTJH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOC5ZZQ#issuecomment-595975398, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADUGCICJO6522G52IYXGVX3RGFUE5ANCNFSM4LDCTJHQ.

petdance commented 4 years ago

OK, but I don't see how it makes sense to be doing things like acking through files for editor settings.

Ignoring the fact that there's currently a --delphi switch, it doesn't make sense to me.

maugly24 commented 4 years ago

I wouldn't like to force anything!

Of course it's your repo/codebase, so it's up to you what you approve / decline, but to give you one clue :

Where did I define this label/callback /action /etc.? This is one useful scenario for the question you'd raised.

But you could try Lazarus on your own and IMHO you would see the benefit soon

But as I said : Feel free to reject it if you think it's useless!

On Mar 6, 2020 10:41 PM, Andy Lester notifications@github.com wrote:

OK, but I don't see how it makes sense to be doing things like acking through files for editor settings.

Ignoring the fact that there's currently a --delphi switch, it doesn't make sense to me.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/beyondgrep/ack3/issues/300?email_source=notifications&email_token=ADUGCIAOYELMJL3NEAGRZ3LRGFUZDA5CNFSM4LDCTJH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOC6HSY#issuecomment-595977163, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADUGCIELHEXLGKAGILZCLNLRGFUZDANCNFSM4LDCTJHQ.

maugly24 commented 4 years ago

@petdance , I've been thinking about this after last night and ended up with the following question: For Lazarus if we would remove .lpi (so the "project-specific settings like compiler settings and needed packages. stored in XML " ) and .lpk (so the "package-specific settings, like compiler settings and needed packages; stored in XML " ) would you be fine with the rest (lfm forms file, lps main program, [pas, p, pp, inc standard pascal files], and .rc, .po resource file) ?