Closed YxingC closed 6 years ago
make sure ctags is installed.
I have install the ctags. When I typed counsel-etag-find-tag-at-point i got these
No project found. You can create tags file using
counsel-etags-scan-code'. So we don't need project root at all. Or you can setup
counsel-etags-project-root'.
Then I typed counsel-etags-scan-code, it show these message
user-error:File d:/projects/caffe-windows/src/caffe/TAGS does not exist
Then I use ctags to create tags file myself. Then do it again I got
No project found. You can create tags file using
counsel-etags-scan-code'. So we don't need project root at all. Or you can setup
counsel-etags-project-root'. process-file: Wrong type argument: stringp, nil
It seems the tags file I created is not compatible. Any idea?
M-x toggle-debug-on-error
, run counsel-etags-scan-code
, then show me the full message.
Please note:
ctags -e -R
to create a file named TAGS
. -e
means compatible with EmacsTAGS
should exist in project root directory so we can recursively search it in parent directory from current opened file automatically. Or else, you need specify its full path in global variable tags-file-name
.Hi, After M-x toggle-debug-on-error
, I typed counsel-etags-scan-code
, no error shows up, only the message like before.
But I typed counsel-etags-find-tag-at-point
, I got this debug message
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> find-file-name-handler(nil process-file)
> process-file("c:\\cygwin64\\bin\\bash.exe" nil t nil "-c" "c:\\\\cygwin64\\\\bin\\\\grep.exe -rsnE --exclude-dir='.git' --exclude-dir='.svn' --exclude-dir='.cvs' --exclude-dir='.bzr' --exclude-dir='.hg' --exclude-dir='bin' --exclude-dir='fonts' --exclude-dir='images' --exclude-dir='.DS_Store' --exclude-dir='.npm' --exclude-dir='.tmp' --exclude-dir='.sass-cache' --exclude-dir='.idea\\*' --exclude-dir='node_modules' --exclude-dir='bower_components' --exclude-dir='.tox' --exclude-dir='.cask' --exclude='\\*.json' --exclude='\\*.log' --exclude='tags' --exclude='TAGS' --exclude='\\*.gz' --exclude='\\*.zip' --exclude='\\*.tar' --exclude='\\*.rar' --exclude='GTAGS' --exclude='GPATH' --exclude='GRTAGS' --exclude='cscope.files' --exclude='\\*bundle.js' --exclude='\\*min.js' --exclude='\\*min.css' --exclude='\\*.png' --exclude='\\*.jpg' --exclude='\\*.jpeg' --exclude='\\*.gif' --exclude='\\*.bmp' --exclude='\\*.tiff' --exclude='\\*.ico' --exclude='\\*.doc' --exclude='\\*.docx' --exclude='\\*.xls' --exclude='\\*.ppt' --exclude='\\*.pdf' --exclude='\\*.odt' --exclude='\\*.obj' --exclude='\\*.o' --exclude='\\*.a' --exclude='\\*.dylib' --exclude='\\*.lib' --exclude='\\*.d' --exclude='\\*.dll' --exclude='\\*.exe' --exclude='.metadata\\*' --exclude='\\*.class' --exclude='\\*.war' --exclude='\\*.jar' --exclude='\\*flymake' --exclude='\\#\\*\\#' --exclude='.\\#\\*' --exclude='\\*.swp' --exclude='\\*\\~' --exclude='\\*.elc' --exclude='\\*.pyc' \"SolverRegistry\" *")
> shell-command-to-string("c:\\\\cygwin64\\\\bin\\\\grep.exe -rsnE --exclude-dir='.git' --exclude-dir='.svn' --exclude-dir='.cvs' --exclude-dir='.bzr' --exclude-dir='.hg' --exclude-dir='bin' --exclude-dir='fonts' --exclude-dir='images' --exclude-dir='.DS_Store' --exclude-dir='.npm' --exclude-dir='.tmp' --exclude-dir='.sass-cache' --exclude-dir='.idea\\*' --exclude-dir='node_modules' --exclude-dir='bower_components' --exclude-dir='.tox' --exclude-dir='.cask' --exclude='\\*.json' --exclude='\\*.log' --exclude='tags' --exclude='TAGS' --exclude='\\*.gz' --exclude='\\*.zip' --exclude='\\*.tar' --exclude='\\*.rar' --exclude='GTAGS' --exclude='GPATH' --exclude='GRTAGS' --exclude='cscope.files' --exclude='\\*bundle.js' --exclude='\\*min.js' --exclude='\\*min.css' --exclude='\\*.png' --exclude='\\*.jpg' --exclude='\\*.jpeg' --exclude='\\*.gif' --exclude='\\*.bmp' --exclude='\\*.tiff' --exclude='\\*.ico' --exclude='\\*.doc' --exclude='\\*.docx' --exclude='\\*.xls' --exclude='\\*.ppt' --exclude='\\*.pdf' --exclude='\\*.odt' --exclude='\\*.obj' --exclude='\\*.o' --exclude='\\*.a' --exclude='\\*.dylib' --exclude='\\*.lib' --exclude='\\*.d' --exclude='\\*.dll' --exclude='\\*.exe' --exclude='.metadata\\*' --exclude='\\*.class' --exclude='\\*.war' --exclude='\\*.jar' --exclude='\\*flymake' --exclude='\\#\\*\\#' --exclude='.\\#\\*' --exclude='\\*.swp' --exclude='\\*\\~' --exclude='\\*.elc' --exclude='\\*.pyc' \"SolverRegistry\" *")
> (split-string (shell-command-to-string (counsel-etags-grep-cli keyword nil)) "[
> \n]+" t)
> (let* ((v-last-mark (point-marker)) (keyword (if default-keyword default-keyword (counsel-etags-read-keyword "Enter grep pattern: "))) (default-directory (counsel-etags-locate-project)) (time (current-time)) (cands (split-string (shell-command-to-string (counsel-etags-grep-cli keyword nil)) "[
> \n]+" t)) (dir-summary (file-name-as-directory (file-name-base (directory-file-name (counsel-etags-locate-project)))))) (setq counsel-etags-opts-cache (plist-put counsel-etags-opts-cache :ignore-dirs counsel-etags-ignore-directories)) (setq counsel-etags-opts-cache (plist-put counsel-etags-opts-cache :ignore-file-names counsel-etags-ignore-filenames)) (ivy-read (concat hint (format "Grep \"%s\" at %s (%.01f seconds): " keyword dir-summary (float-time (time-since time)))) cands :history (quote counsel-git-grep-history) :action (quote (lambda (line) (let* ((lst (split-string line ":")) (file (concat ... ...)) (linenum (string-to-number ...))) (counsel-etags-open-file-api file linenum)))) :caller (quote counsel-etags-grep)) (if (fboundp (quote xref-push-marker-stack)) (progn (xref-push-marker-stack v-last-mark))))
> counsel-etags-grep("SolverRegistry" "No tag found. ")
> (cond ((not counsel-etags-find-tag-candidates) (counsel-etags-grep tagname "No tag found. ")) (t (counsel-etags-open-cand counsel-etags-find-tag-candidates time)))
> (let* ((time (current-time))) (setq counsel-etags-find-tag-candidates (counsel-etags-collect-cands tagname dir)) (cond ((not counsel-etags-find-tag-candidates) (counsel-etags-grep tagname "No tag found. ")) (t (counsel-etags-open-cand counsel-etags-find-tag-candidates time))))
>
> counsel-etags-find-tag-api("SolverRegistry")
> (cond (tagname (counsel-etags-find-tag-api tagname)) (t (message "No tag at point")))
> (let* ((tagname (counsel-etags-tagname-at-point))) (cond (tagname (counsel-etags-find-tag-api tagname)) (t (message "No tag at point"))))
> counsel-etags-find-tag-at-point()
> call-interactively(counsel-etags-find-tag-at-point record nil)
>
> #[257 "\304\305!\203\f^@\306\307!!\210^H^Y\307!\211\310\307!\311\")\207"[current-prefix-arg prefix-arg this-command real-this-command featurep smex smex-rank intern command-execute record] 4 "\n\n(fn CMD)"]("counsel-etags-find-tag-at-point")
> ivy-call()
> ivy-read("M-x " ("counsel-etags-scan-code" "toggle-debug-on-error" "shell" "version" "rgrep" "grep" "find-tag" "uncomment-region" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "w3m" "xdb" "bash" "bbdb" "calc" "diff" "dirs" "emms" "ffap" "ffip" "gnus" "help" "ielm" "info" "life" "mail" "mpuz" "ping" "pong" "smex" "talk" "term" "undo" "void" ...) :predicate nil :require-match t :history counsel-M-x-history :action #[257 "\304\305!\203\f^@\306\307!!\210^H^Y\307!\211\310\307!\311\")\207"[current-prefix-arg prefix-arg this-command real-this-command featurep smex smex-rank intern command-execute record] 4 "\n\n(fn CMD)"] :sort nil :keymap (keymap (11 . kill-line) (27 keymap (121 . paste-from-x-clipboard)) (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
> counsel-M-x()
> (cond (my-use-smex (smex)) ((fboundp (quote counsel-M-x)) (counsel-M-x)) ((fboundp (quote smex)) (smex)) (t (execute-extended-command)))
> my-M-x()
> call-interactively(my-M-x nil nil)
> command-execute(my-M-x)
This debug message was printed, when I created tags file my self. Without tags file that will also not show any error. Sorry for long error message.
TAGS is created, but the tag name does not exist. Read the documentation of ctags. You might need tell ctags how to scan (using regular expression).
The error message is displayed because grep is used to grep code now (since tag lookup failed, we fall back to grep).
You need help counsel-etags
to find project root if you don't use git.
Suppose there is a README.md
in your project root. (setq counsel-etags-project-file '(".svn" ".hg" ".git" "README.md")
I put the "README.md" to variable counsel-etags-project-file. After that counsel-etags find the project root. But I typed the counsel-etags-scan-code. I got this error message
Debugger entered--Lisp error: (error "File d:/projects/caffe-windows/TAGS no longer exists!") signal(error ("File d:/projects/caffe-windows/TAGS no longer exists!")) error("File %s no longer exists!" "d:/projects/caffe-windows/TAGS") revert-buffer-insert-file-contents--default-function("d:/projects/caffe-windows/TAGS" nil) revert-buffer--default(t t) revert-buffer(t t) tags-verify-table("d:/projects/caffe-windows/TAGS") visit-tags-table-buffer("d:/projects/caffe-windows/TAGS") visit-tags-table("d:/projects/caffe-windows/TAGS" t) (progn (message "%s at %s" cmd default-directory) (shell-command cmd) (visit-tags-table tags-file t)) (if doit (progn (message "%s at %s" cmd default-directory) (shell-command cmd) (visit-tags-table tags-file t))) (let ((find-pg (or counsel-etags-find-program (counsel-etags-guess-program "find"))) (ctags-pg (or counsel-etags-tags-program (format "%s -e -L" (counsel-etags-guess-program "ctags")))) (default-directory src-dir) (cmd (format "%s . \( %s \) -prune -o -type f -not -size +%sk %s | %s -" find-pg (mapconcat (function (lambda (p) (format "-iwholename \"/%s\"" ...))) counsel-etags-ignore-directories " -or ") counsel-etags-max-file-size (mapconcat (function (lambda (n) (format "-not -name \"%s\"" ...))) counsel-etags-ignore-filenames " ") ctags-pg)) (tags-file (concat (file-name-as-directory src-dir) "TAGS")) (doit (or force (not (file-exists-p tags-file))))) (if doit (progn (message "%s at %s" cmd default-directory) (shell-command cmd) (visit-tags-table tags-file t)))) counsel-etags-scan-dir("d:/projects/caffe-windows/" t) (progn (counsel-etags-scan-dir src-dir t)) (if src-dir (progn (counsel-etags-scan-dir src-dir t))) (let ((src-dir (or dir (read-directory-name "Ctags will scan code at:" (or (counsel-etags-locate-project) default-directory))))) (if src-dir (progn (counsel-etags-scan-dir src-dir t)))) counsel-etags-scan-code() call-interactively(counsel-etags-scan-code record nil) command-execute(counsel-etags-scan-code record)
257 "\304\305!\203\f^@\306\307�!!\210^H^Y�\307�!\211��\310\307�!\311\")\207"[current-prefix-arg prefix-arg this-command real-this-command featurep smex smex-rank intern command-execute record] 4 "\n\n(fn CMD)"
ivy-call() ivy-read("M-x " ("counsel-etags-scan-code" "toggle-debug-on-error" "counsel-etags-find-tag-at-point" "shell" "version" "rgrep" "grep" "find-tag" "uncomment-region" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "w3m" "xdb" "bash" "bbdb" "calc" "diff" "emms" "ffap" "ffip" "gnus" "help" "ielm" "info" "life" "mail" "mpuz" "ping" "pong" "smex" "talk" "term" "undo" "void" ...) :predicate nil :require-match t :history counsel-M-x-history :action #[257 "\304\305!\203\f^@\306\307�!!\210^H^Y�\307�!\211��\310\307�!\311\")\207" [current-prefix-arg prefix-arg this-command real-this-command featurep smex smex-rank intern command-execute record] 4 "\n\n(fn CMD)"] :sort nil :keymap (keymap (11 . kill-line) (27 keymap (121 . paste-from-x-clipboard)) (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x) counsel-M-x() (cond (my-use-smex (smex)) ((fboundp (quote counsel-M-x)) (counsel-M-x)) ((fboundp (quote smex)) (smex)) (t (execute-extended-command))) my-M-x() call-interactively(my-M-x nil nil) command-execute(my-M-x)
Seems counsel-etags not going to create a tags file itselft. But if I created a tags file for it, then I got
c:\cygwin64\bin\find.exe . ( -iwholename "/.git/" -or -iwholename "/.svn/" -or -iwholename "/.cvs/" -or -iwholename "/.bzr/" -or -iwholename "/.hg/" -or -iwholename "/bin/" -or -iwholename "/fonts/" -or -iwholename "/images/" -or -iwholename "/.DS_Store/" -or -iwholename "/.npm/" -or -iwholename "/.tmp/" -or -iwholename "/.sass-cache/" -or -iwholename "/.idea*/" -or -iwholename "/node_modules/" -or -iwholename "/bower_components/" -or -iwholename "/.tox/" -or -iwholename "/.cask/" ) -prune -o -type f -not -size +64k -not -name "*.json" -not -name "*.log" -not -name "tags" -not -name "TAGS" -not -name "*.gz" -not -name "*.zip" -not -name "*.tar" -not -name "*.rar" -not -name "GTAGS" -not -name "GPATH" -not -name "GRTAGS" -not -name "cscope.files" -not -name "*bundle.js" -not -name "*min.js" -not -name "*min.css" -not -name "*.png" -not -name "*.jpg" -not -name "*.jpeg" -not -name "*.gif" -not -name "*.bmp" -not -name "*.tiff" -not -name "*.ico" -not -name "*.doc" -not -name "*.docx" -not -name "*.xls" -not -name "*.ppt" -not -name "*.pdf" -not -name "*.odt" -not -name "*.obj" -not -name "*.o" -not -name "*.a" -not -name "*.dylib" -not -name "*.lib" -not -name "*.d" -not -name "*.dll" -not -name "*.exe" -not -name ".metadata*" -not -name "*.class" -not -name "*.war" -not -name "*.jar" -not -name "*flymake" -not -name "#*#" -not -name ".#*" -not -name "*.swp" -not -name "*\~" -not -name "*.elc" -not -name "*.pyc" | c:\cygwin64\bin\ctags.exe -e -L - at d:/projects/caffe-windows/ user-error: File d:/projects/caffe-windows/TAGS is not a valid tags table
I'm not sure that it got the problem ,because character encoding.
Does d:/projects/caffe-windows/TAGS
exist?
You also need give me the full information of your environment.
Yes, I create the tags file using ctags -R .
,then I rename it from tags to TAGS.
drwxrwx---+ 1 Yxing None 0 十二 16 23:41 . drwxrwx---+ 1 Yxing None 0 十二 3 12:32 .. -rwxrwx---+ 1 Yxing None 100K 十二 3 00:33 .Doxyfile -rwxrwx---+ 1 Yxing None 2.5K 十二 3 00:33 .gitattributes drwxrwx---+ 1 Yxing None 0 十二 3 00:33 .github -rwxrwx---+ 1 Yxing None 1.3K 十二 3 00:33 .gitignore -rwxrwx---+ 1 Yxing None 1.9K 十二 3 00:33 .travis.yml -rwxrwx---+ 1 Yxing None 1.8K 十二 3 00:33 appveyor.yml -rwxrwx---+ 1 Yxing None 1.2K 十二 3 00:33 caffe.cloc drwxrwx---+ 1 Yxing None 0 十二 3 00:33 cmake -rwxrwx---+ 1 Yxing None 6.2K 十二 3 00:33 CMakeLists.txt -rwxrwx---+ 1 Yxing None 1.9K 十二 3 00:33 CONTRIBUTING.md -rwxrwx---+ 1 Yxing None 620 十二 3 00:33 CONTRIBUTORS.md drwxrwx---+ 1 Yxing None 0 十二 3 00:33 data drwxrwx---+ 1 Yxing None 0 十二 3 00:33 docker drwxrwx---+ 1 Yxing None 0 十二 3 00:33 docs drwxrwx---+ 1 Yxing None 0 十二 3 00:33 examples drwxrwx---+ 1 Yxing None 0 十二 3 00:33 include -rwxrwx---+ 1 Yxing None 210 十二 3 00:33 INSTALL.md -rwxrwx---+ 1 Yxing None 2.1K 十二 3 00:33 LICENSE -rwxrwx---+ 1 Yxing None 24K 十二 3 00:33 Makefile -rwxrwx---+ 1 Yxing None 4.6K 十二 3 00:33 Makefile.config.example drwxrwx---+ 1 Yxing None 0 十二 3 00:33 matlab drwxrwx---+ 1 Yxing None 0 十二 3 00:33 models drwxrwx---+ 1 Yxing None 0 十二 3 00:33 python -rwxrwx---+ 1 Yxing None 11K 十二 3 00:33 README.md drwxrwx---+ 1 Yxing None 0 十二 3 00:34 scripts drwxrwx---+ 1 Yxing None 0 十二 3 00:33 src -rw-rw-r--+ 1 Yxing None 1.0M 十二 16 23:41 TAGS drwxrwx---+ 1 Yxing None 0 十二 3 00:33 tools
After that I typed M-x counsel-etags-scan-code
.
No any debug messages show up. Only the message in messages buffer
c:\cygwin64\bin\find.exe . ( -iwholename "/.git/" -or -iwholename "/.svn/" -or -iwholename "/.cvs/" -or -iwholename "/.bzr/" -or -iwholename "/.hg/" -or -iwholename "/bin/" -or -iwholename "/fonts/" -or -iwholename "/images/" -or -iwholename "/.DS_Store/" -or -iwholename "/.npm/" -or -iwholename "/.tmp/" -or -iwholename "/.sass-cache/" -or -iwholename "/.idea/" -or -iwholename "/node_modules/" -or -iwholename "/bower_components/" -or -iwholename "/.tox/" -or -iwholename "/.cask/" ) -prune -o -type f -not -size +64k -not -name ".json" -not -name ".log" -not -name "tags" -not -name "TAGS" -not -name ".gz" -not -name ".zip" -not -name ".tar" -not -name ".rar" -not -name "GTAGS" -not -name "GPATH" -not -name "GRTAGS" -not -name "cscope.files" -not -name "bundle.js" -not -name "min.js" -not -name "min.css" -not -name ".png" -not -name ".jpg" -not -name ".jpeg" -not -name ".gif" -not -name ".bmp" -not -name ".tiff" -not -name ".ico" -not -name ".doc" -not -name ".docx" -not -name ".xls" -not -name ".ppt" -not -name ".pdf" -not -name ".odt" -not -name ".obj" -not -name ".o" -not -name ".a" -not -name ".dylib" -not -name ".lib" -not -name ".d" -not -name ".dll" -not -name ".exe" -not -name ".metadata" -not -name ".class" -not -name ".war" -not -name ".jar" -not -name "flymake" -not -name "##" -not -name ".#" -not -name ".swp" -not -name "~" -not -name ".elc" -not -name ".pyc" | c:\cygwin64\bin\ctags.exe -e -L - at d:/projects/caffe-windows/ user-error: File d:/projects/caffe-windows/TAGS is not a valid tags table
Emacs version is
GNU Emacs 24.4.91.1 (x86_64-w64-mingw32) in Windows 7
Cygwin version is
CYGWIN_NT-6.1 2.9.0(0.318/5/3) 2017-09-12 10:18 x86_64 Cygwin
Ctags version is
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert Compiled: Apr 16 2013, 08:42:49 Addresses: dhiebert@users.sourceforge.net, http://ctags.sourceforge.net Optional compiled features: +wildcards, +regex, +internal-sort
Run ctags -e -R to create a file named TAGS. -e means compatible with Emacs. Check my previous comment
Yeah, you are right. Generate tags file with -e
, counsel-etag can find the tags file correctly. But counsel-etags-scan-code
and counsel-etags-find-at-point
still not work when tags file not generate at first. Still have error message like before.
Try add c:\cygwin64\bin
into environment variable PATH
Hi, I add the path into PATH, but it sill the same situation. I typed M-x counsel-etags-scan-code
, then message buffer show
messages-buffer-mode-hook-setup called c:\\cygwin64\\bin\\find.exe . ( -iwholename "/.git/" -or -iwholename "/.svn/" -or -iwholename "/.cvs/" -or -iwholename "/.bzr/" -or -iwholename "/.hg/" -or -iwholename "/bin/" -or -iwholename "/fonts/" -or -iwholename "/images/" -or -iwholename "/.DS_Store/" -or -iwholename "/.npm/" -or -iwholename "/.tmp/" -or -iwholename "/.sass-cache/" -or -iwholename "/.idea*/" -or -iwholename "/node_modules/" -or -iwholename "/bower_components/" -or -iwholename "/.tox/" -or -iwholename "/.cask/" ) -prune -o -type f -not -size +64k -not -name "*.json" -not -name "*.log" -not -name "tags" -not -name "TAGS" -not -name "*.gz" -not -name "*.zip" -not -name "*.tar" -not -name "*.rar" -not -name "GTAGS" -not -name "GPATH" -not -name "GRTAGS" -not -name "cscope.files" -not -name "*bundle.js" -not -name "*min.js" -not -name "*min.css" -not -name "*.png" -not -name "*.jpg" -not -name "*.jpeg" -not -name "*.gif" -not -name "*.bmp" -not -name "*.tiff" -not -name "*.ico" -not -name "*.doc" -not -name "*.docx" -not -name "*.xls" -not -name "*.ppt" -not -name "*.pdf" -not -name "*.odt" -not -name "*.obj" -not -name "*.o" -not -name "*.a" -not -name "*.dylib" -not -name "*.lib" -not -name "*.d" -not -name "*.dll" -not -name "*.exe" -not -name ".metadata*" -not -name "*.class" -not -name "*.war" -not -name "*.jar" -not -name "*flymake" -not -name "#*#" -not -name ".#*" -not -name "*.swp" -not -name "*\~" -not -name "*.elc" -not -name "*.pyc" | c:\\cygwin64\\bin\\ctags.exe -e -L - at d:/projects/caffe-windows/ user-error: File d:/projects/caffe-windows/TAGS does not exist
I found that when I typed c:\\cygwin64\\bin\\find.exe
or c:\\cygwin64\\bin\\ctags.exe
in cygwin, it will return command not found. But these two command can be accepted by windows command-line(dos).
Sorry about that I found github message box will also escape the double backslash. So the comments I reported before, their backslash should be two, not only one.
Don't worry about slashes, it's been tested in many packages. should be fine.
Looks you have to update tags file in your own way. If you want to update tags file automatically, check section "Auto update tags file" in README
Hi, When I typed counsel-etags-find-tag-at-point, got this error. I'm not sure whether ctags goes wrong or not?
/usr/bin/bash: -c: line 0: syntax error near unexpected token
(' /usr/bin/bash: -c: line 0:
c:\\cygwin64\\bin\\find.exe . \( -iwholename */.git/\ -or -iwholename */.svn/\ -or -iwholename */.cvs/\ -or -iwholename */.bzr/\ -or -iwholename */.hg/\ -or -iwholename */bin/\ -or -iwholename */fonts/\ -or -iwholename */images/\ -or -iwholename */.DS_Store/\ -or -iwholename */.npm/\ -or -iwholename */.tmp/\ -or -iwholename */.sass-cache/\ -or -iwholename */.idea\/\ -or -iwholename */node_modules/\ -or -iwholename */bower_components/\ -or -iwholename */.tox/\ -or -iwholename */.cask/\ \) -prune -o -type f -not -size +64k -not -name \*.json\ -not -name \*.log\ -not -name \tags\ -not -name \TAGS\ -not -name \*.gz\ -not -name \*.zip\ -not -name \*.tar\ -not -name \*.rar\ -not -name \GTAGS\ -not -name \GPATH\ -not -name \GRTAGS\ -not -name \cscope.files\ -not -name \*bundle.js\ -not -name \*min.js\ -not -name \*min.css\ -not -name \*.png\ -not -name \*.jpg\ -not -name \*.jpeg\ -not -name \*.gif\ -not -name \*.bmp\ -not -name \*.tiff\ -not -name \*.ico\ -not -name \*.doc\ -not -name \*.docx\ -not -name \*.xls\ -not -name \*.ppt\ -not -name \*.pdf\ -not -name \*.odt\ -not -name \*.obj\ -not -name \*.o\ -not -name \*.a\ -not -name \*.dylib\ -not -name \*.lib\ -not -name \*.d\ -not -name \*.dll\ -not -name \*.exe\ -not -name .metadata\\ -not -name \*.class\ -not -name \*.war\ -not -name \*.jar\ -not -name \*flymake\ -not -name \#\\#\ -not -name .\#\\ -not -name \*.swp\ -not -name \\\~\ -not -name \\.elc\ -not -name \\.pyc\ | c:\\cygwin64\\bin\\ctags.exe -e -L -'