redguardtoo / counsel-etags

Fast, energy-saving, and powerful code navigation solution
174 stars 15 forks source link

counsel-etags show error in cygwin #8

Closed YxingC closed 6 years ago

YxingC commented 6 years ago

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 -'

redguardtoo commented 6 years ago

make sure ctags is installed.

YxingC commented 6 years ago

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 setupcounsel-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 setupcounsel-etags-project-root'. process-file: Wrong type argument: stringp, nil

It seems the tags file I created is not compatible. Any idea?

redguardtoo commented 6 years ago

M-x toggle-debug-on-error, run counsel-etags-scan-code, then show me the full message.

Please note:

YxingC commented 6 years ago

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.

redguardtoo commented 6 years ago

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")

YxingC commented 6 years ago

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.

redguardtoo commented 6 years ago

Does d:/projects/caffe-windows/TAGS exist? You also need give me the full information of your environment.

YxingC commented 6 years ago

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

redguardtoo commented 6 years ago

Run ctags -e -R to create a file named TAGS. -e means compatible with Emacs. Check my previous comment

YxingC commented 6 years ago

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.

redguardtoo commented 6 years ago

Try add c:\cygwin64\bin into environment variable PATH

YxingC commented 6 years ago

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.

redguardtoo commented 6 years ago

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