File Coverage

blib/lib/App/Ack/ConfigDefault.pm
Criterion Covered Total %
statement 9 15 60.0
branch 0 2 0.0
condition n/a
subroutine 3 6 50.0
pod 0 2 0.0
total 12 25 48.0


line stmt bran cond sub pod time code
1             package App::Ack::ConfigDefault;
2              
3 2     2   13598 use warnings;
  2         4  
  2         80  
4 2     2   11 use strict;
  2         10  
  2         44  
5              
6 2     2   10 use App::Ack ();
  2         4  
  2         666  
7              
8              
9             =head1 NAME
10              
11             App::Ack::ConfigDefault
12              
13             =head1 DESCRIPTION
14              
15             A module that contains the default configuration for ack.
16              
17             =cut
18              
19             sub options {
20 0     0 0   return split( /\n/, _options_block() );
21             }
22              
23              
24             sub options_clean {
25 0 0   0 0   return grep { /./ && !/^#/ } options();
  0            
26             }
27              
28              
29             sub _options_block {
30 0     0     my $lines = <<'HERE';
31             # This is the default ackrc for ack version ==VERSION==.
32              
33             # There are four different ways to match
34             #
35             # is: Match the filename exactly
36             #
37             # ext: Match the extension of the filename exactly
38             #
39             # match: Match the filename against a Perl regular expression
40             #
41             # firstlinematch: Match the first 250 characters of the first line
42             # of text against a Perl regular expression. This is only for
43             # the --type-add option.
44              
45              
46             ### Directories to ignore
47              
48             # Bazaar
49             # https://bazaar.canonical.com/
50             --ignore-directory=is:.bzr
51              
52             # Codeville
53             # http://freshmeat.sourceforge.net/projects/codeville
54             --ignore-directory=is:.cdv
55              
56             # Interface Builder (Xcode)
57             # https://en.wikipedia.org/wiki/Interface_Builder
58             --ignore-directory=is:~.dep
59             --ignore-directory=is:~.dot
60             --ignore-directory=is:~.nib
61             --ignore-directory=is:~.plst
62              
63             # Git
64             # https://git-scm.com/
65             --ignore-directory=is:.git
66             # When submodules are used, .git is a file.
67             --ignore-file=is:.git
68              
69             # Mercurial
70             # https://www.mercurial-scm.org/
71             --ignore-directory=is:.hg
72              
73             # Quilt
74             # https://directory.fsf.org/wiki/Quilt
75             --ignore-directory=is:.pc
76              
77             # Subversion
78             # https://subversion.apache.org/
79             --ignore-directory=is:.svn
80              
81             # Monotone
82             # https://www.monotone.ca/
83             --ignore-directory=is:_MTN
84              
85             # CVS
86             # https://savannah.nongnu.org/projects/cvs
87             --ignore-directory=is:CVS
88              
89             # RCS
90             # https://www.gnu.org/software/rcs/
91             --ignore-directory=is:RCS
92              
93             # SCCS
94             # https://en.wikipedia.org/wiki/Source_Code_Control_System
95             --ignore-directory=is:SCCS
96              
97             # darcs
98             # http://darcs.net/
99             --ignore-directory=is:_darcs
100              
101             # Vault/Fortress
102             --ignore-directory=is:_sgbak
103              
104             # autoconf
105             # https://www.gnu.org/software/autoconf/
106             --ignore-directory=is:autom4te.cache
107              
108             # Perl module building
109             --ignore-directory=is:blib
110             --ignore-directory=is:_build
111              
112             # Perl Devel::Cover module's output directory
113             # https://metacpan.org/release/Devel-Cover
114             --ignore-directory=is:cover_db
115              
116             # Node modules created by npm
117             --ignore-directory=is:node_modules
118              
119             # CMake cache
120             # https://www.cmake.org/
121             --ignore-directory=is:CMakeFiles
122              
123             # Eclipse workspace folder
124             # https://eclipse.org/
125             --ignore-directory=is:.metadata
126              
127             # Cabal (Haskell) sandboxes
128             # https://www.haskell.org/cabal/users-guide/installing-packages.html
129             --ignore-directory=is:.cabal-sandbox
130              
131             # Python caches
132             # https://docs.python.org/3/tutorial/modules.html
133             --ignore-directory=is:__pycache__
134             --ignore-directory=is:.pytest_cache
135              
136             # macOS Finder remnants
137             --ignore-directory=is:__MACOSX
138             --ignore-file=is:.DS_Store
139              
140             ### Files to ignore
141              
142             # Backup files
143             --ignore-file=ext:bak
144             --ignore-file=match:/~$/
145              
146             # Emacs swap files
147             --ignore-file=match:/^#.+#$/
148              
149             # vi/vim swap files https://www.vim.org/
150             --ignore-file=match:/[._].*[.]swp$/
151              
152             # core dumps
153             --ignore-file=match:/core[.]\d+$/
154              
155             # minified Javascript
156             --ignore-file=match:/[.-]min[.]js$/
157             --ignore-file=match:/[.]js[.]min$/
158              
159             # minified CSS
160             --ignore-file=match:/[.]min[.]css$/
161             --ignore-file=match:/[.]css[.]min$/
162              
163             # JS and CSS source maps
164             --ignore-file=match:/[.]js[.]map$/
165             --ignore-file=match:/[.]css[.]map$/
166              
167             # PDFs, because they pass Perl's -T detection
168             --ignore-file=ext:pdf
169              
170             # Common graphics, just as an optimization
171             --ignore-file=ext:gif,jpg,jpeg,png
172              
173             # Common archives, as an optimization
174             --ignore-file=ext:gz,tar,tgz,zip
175              
176             # Python compiles modules
177             --ignore-file=ext:pyc,pyd,pyo
178              
179             # C extensions
180             --ignore-file=ext:so
181              
182             # Compiled gettext files
183             --ignore-file=ext:mo
184              
185             ### Filetypes defined
186              
187             # Makefiles
188             # https://www.gnu.org/s/make/
189             --type-add=make:ext:mk
190             --type-add=make:ext:mak
191             --type-add=make:is:makefile
192             --type-add=make:is:Makefile
193             --type-add=make:is:Makefile.Debug
194             --type-add=make:is:Makefile.Release
195             --type-add=make:is:GNUmakefile
196              
197             # Rakefiles
198             # https://rake.rubyforge.org/
199             --type-add=rake:is:Rakefile
200              
201             # CMake
202             # https://cmake.org/
203             --type-add=cmake:is:CMakeLists.txt
204             --type-add=cmake:ext:cmake
205              
206             # Bazel build tool
207             # https://docs.bazel.build/versions/master/skylark/bzl-style.html
208             --type-add=bazel:ext:bzl
209             # https://docs.bazel.build/versions/master/guide.html#bazelrc-the-bazel-configuration-file
210             --type-add=bazel:ext:bazelrc
211             # https://docs.bazel.build/versions/master/build-ref.html#BUILD_files
212             --type-add=bazel:is:BUILD
213             # https://docs.bazel.build/versions/master/build-ref.html#workspace
214             --type-add=bazel:is:WORKSPACE
215              
216              
217             # Actionscript
218             --type-add=actionscript:ext:as,mxml
219              
220             # Ada
221             # https://www.adaic.org/
222             --type-add=ada:ext:ada,adb,ads
223              
224             # ASP
225             # https://docs.microsoft.com/en-us/previous-versions/office/developer/server-technologies/aa286483(v=msdn.10)
226             --type-add=asp:ext:asp
227              
228             # ASP.Net
229             # https://dotnet.microsoft.com/apps/aspnet
230             --type-add=aspx:ext:master,ascx,asmx,aspx,svc
231              
232             # Assembly
233             --type-add=asm:ext:asm,s
234              
235             # DOS/Windows batch
236             --type-add=batch:ext:bat,cmd
237              
238             # ColdFusion
239             # https://en.wikipedia.org/wiki/ColdFusion
240             --type-add=cfmx:ext:cfc,cfm,cfml
241              
242             # Clojure
243             # https://clojure.org/
244             --type-add=clojure:ext:clj,cljs,edn,cljc
245              
246             # C
247             # .xs are Perl C files
248             --type-add=cc:ext:c,h,xs
249              
250             # C header files
251             --type-add=hh:ext:h
252              
253             # CoffeeScript
254             # https://coffeescript.org/
255             --type-add=coffeescript:ext:coffee
256              
257             # C++
258             --type-add=cpp:ext:cpp,cc,cxx,m,hpp,hh,h,hxx
259              
260             # C++ header files
261             --type-add=hpp:ext:hpp,hh,h,hxx
262              
263             # C#
264             --type-add=csharp:ext:cs
265              
266             # CSS
267             # https://www.w3.org/Style/CSS/
268             --type-add=css:ext:css
269              
270             # Dart
271             # https://dart.dev/
272             --type-add=dart:ext:dart
273              
274             # Delphi
275             # https://en.wikipedia.org/wiki/Embarcadero_Delphi
276             --type-add=delphi:ext:pas,int,dfm,nfm,dof,dpk,dproj,groupproj,bdsgroup,bdsproj
277              
278             # Elixir
279             # https://elixir-lang.org/
280             --type-add=elixir:ext:ex,exs
281              
282             # Elm
283             # https://elm-lang.org
284             --type-add=elm:ext:elm
285              
286             # Emacs Lisp
287             # https://www.gnu.org/software/emacs
288             --type-add=elisp:ext:el
289              
290             # Erlang
291             # https://www.erlang.org/
292             --type-add=erlang:ext:erl,hrl
293              
294             # Fortran
295             # https://en.wikipedia.org/wiki/Fortran
296             --type-add=fortran:ext:f,f77,f90,f95,f03,for,ftn,fpp
297              
298             # Go
299             # https://golang.org/
300             --type-add=go:ext:go
301              
302             # Groovy
303             # https://www.groovy-lang.org/
304             --type-add=groovy:ext:groovy,gtmpl,gpp,grunit,gradle
305              
306             # GSP
307             # https://gsp.grails.org/
308             --type-add=gsp:ext:gsp
309              
310             # Haskell
311             # https://www.haskell.org/
312             --type-add=haskell:ext:hs,lhs
313              
314             # HTML
315             --type-add=html:ext:htm,html,xhtml
316              
317             # Jade
318             # http://jade-lang.com/
319             --type-add=jade:ext:jade
320              
321             # Java
322             # https://www.oracle.com/technetwork/java/index.html
323             --type-add=java:ext:java,properties
324              
325             # JavaScript
326             --type-add=js:ext:js
327              
328             # JSP
329             # https://www.oracle.com/technetwork/java/javaee/jsp/index.html
330             --type-add=jsp:ext:jsp,jspx,jspf,jhtm,jhtml
331              
332             # JSON
333             # https://json.org/
334             --type-add=json:ext:json
335              
336             # Kotlin
337             # https://kotlinlang.org/
338             --type-add=kotlin:ext:kt,kts
339              
340             # Less
341             # http://www.lesscss.org/
342             --type-add=less:ext:less
343              
344             # Common Lisp
345             # https://common-lisp.net/
346             --type-add=lisp:ext:lisp,lsp
347              
348             # Lua
349             # https://www.lua.org/
350             --type-add=lua:ext:lua
351             --type-add=lua:firstlinematch:/^#!.*\blua(jit)?/
352              
353             # Markdown
354             # https://en.wikipedia.org/wiki/Markdown
355             --type-add=markdown:ext:md,markdown
356             # We understand that there are many ad hoc extensions for markdown
357             # that people use. .md and .markdown are the two that ack recognizes.
358             # You are free to add your own in your ackrc file.
359              
360             # Matlab
361             # https://en.wikipedia.org/wiki/MATLAB
362             --type-add=matlab:ext:m
363              
364             # Objective-C
365             --type-add=objc:ext:m,h
366              
367             # Objective-C++
368             --type-add=objcpp:ext:mm,h
369              
370             # OCaml
371             # https://ocaml.org/
372             --type-add=ocaml:ext:ml,mli,mll,mly
373              
374             # Perl
375             # https://perl.org/
376             --type-add=perl:ext:pl,pm,pod,t,psgi
377             --type-add=perl:firstlinematch:/^#!.*\bperl/
378              
379             # Perl tests
380             --type-add=perltest:ext:t
381              
382             # Perl's Plain Old Documentation format, POD
383             --type-add=pod:ext:pod
384              
385             # PHP
386             # https://www.php.net/
387             --type-add=php:ext:php,phpt,php3,php4,php5,phtml
388             --type-add=php:firstlinematch:/^#!.*\bphp/
389              
390             # Plone
391             # https://plone.org/
392             --type-add=plone:ext:pt,cpt,metadata,cpy,py
393              
394             # PureScript
395             # https://www.purescript.org
396             --type-add=purescript:ext:purs
397              
398             # Python
399             # https://www.python.org/
400             --type-add=python:ext:py
401             --type-add=python:firstlinematch:/^#!.*\bpython/
402              
403             # R
404             # https://www.r-project.org/
405             --type-add=rr:ext:R
406              
407             # reStructured Text
408             # https://docutils.sourceforge.io/rst.html
409             --type-add=rst:ext:rst
410              
411             # Ruby
412             # https://www.ruby-lang.org/
413             --type-add=ruby:ext:rb,rhtml,rjs,rxml,erb,rake,spec
414             --type-add=ruby:is:Rakefile
415             --type-add=ruby:firstlinematch:/^#!.*\bruby/
416              
417             # Rust
418             # https://www.rust-lang.org/
419             --type-add=rust:ext:rs
420              
421             # Sass
422             # https://sass-lang.com
423             --type-add=sass:ext:sass,scss
424              
425             # Scala
426             # https://www.scala-lang.org/
427             --type-add=scala:ext:scala
428              
429             # Scheme
430             # https://groups.csail.mit.edu/mac/projects/scheme/
431             --type-add=scheme:ext:scm,ss
432              
433             # Shell
434             --type-add=shell:ext:sh,bash,csh,tcsh,ksh,zsh,fish
435             --type-add=shell:firstlinematch:/^#!.*\b(?:ba|t?c|k|z|fi)?sh\b/
436              
437             # Smalltalk
438             # http://www.smalltalk.org/
439             --type-add=smalltalk:ext:st
440              
441             # Smarty
442             # https://www.smarty.net/
443             --type-add=smarty:ext:tpl
444              
445             # SQL
446             # https://www.iso.org/standard/45498.html
447             --type-add=sql:ext:sql,ctl
448              
449             # Stylus
450             # http://stylus-lang.com/
451             --type-add=stylus:ext:styl
452              
453             # SVG
454             # https://en.wikipedia.org/wiki/Scalable_Vector_Graphics
455             --type-add=svg:ext:svg
456              
457             # Swift
458             # https://developer.apple.com/swift/
459             --type-add=swift:ext:swift
460             --type-add=swift:firstlinematch:/^#!.*\bswift/
461              
462             # Tcl
463             # https://www.tcl.tk/
464             --type-add=tcl:ext:tcl,itcl,itk
465              
466             # TeX & LaTeX
467             # https://www.latex-project.org/
468             --type-add=tex:ext:tex,cls,sty
469              
470             # Template Toolkit (Perl)
471             # http//template-toolkit.org/
472             --type-add=ttml:ext:tt,tt2,ttml
473              
474             # TOML
475             # https://toml.io/
476             --type-add=toml:ext:toml
477              
478             # Typescript
479             # https://www.typescriptlang.org/
480             --type-add=ts:ext:ts,tsx
481              
482             # Visual Basic
483             --type-add=vb:ext:bas,cls,frm,ctl,vb,resx
484              
485             # Verilog
486             --type-add=verilog:ext:v,vh,sv
487              
488             # VHDL
489             # http://www.eda.org/twiki/bin/view.cgi/P1076/WebHome
490             --type-add=vhdl:ext:vhd,vhdl
491              
492             # Vim
493             # https://www.vim.org/
494             --type-add=vim:ext:vim
495              
496             # XML
497             # https://www.w3.org/TR/REC-xml/
498             --type-add=xml:ext:xml,dtd,xsd,xsl,xslt,ent,wsdl
499             --type-add=xml:firstlinematch:/<[?]xml/
500              
501             # YAML
502             # https://yaml.org/
503             --type-add=yaml:ext:yaml,yml
504             HERE
505 0           $lines =~ s/==VERSION==/$App::Ack::VERSION/sm;
506              
507 0           return $lines;
508             }
509              
510             1;