From a9e3ff34d7fca54ebb1a7f815210ac3659a0440e Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 15 Jun 2026 17:04:07 -0700 Subject: oni-php: Add scripts directory --- emacs/.emacs.d/oni-php.el | 2 +- emacs/.emacs.d/scripts/find-php-class | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100755 emacs/.emacs.d/scripts/find-php-class (limited to 'emacs') diff --git a/emacs/.emacs.d/oni-php.el b/emacs/.emacs.d/oni-php.el index 3d87dca..53e3304 100644 --- a/emacs/.emacs.d/oni-php.el +++ b/emacs/.emacs.d/oni-php.el @@ -49,7 +49,7 @@ nil for some reason." "Try to add a use statement for CLASS under point." (interactive (list (thing-at-point 'symbol))) (let* ((default-directory (project-root (project-current))) - (classes (read (shell-command-to-string (concat (expand-file-name "find-php-class" oni-php-scripts-dir) " " class)))) + (classes (string-split (string-trim-right (shell-command-to-string (concat (expand-file-name "find-php-class" oni-php-scripts-dir) " " class))) "\n")) (class (cond ((null classes) (user-error "Class ā€˜%s’ not found" class)) diff --git a/emacs/.emacs.d/scripts/find-php-class b/emacs/.emacs.d/scripts/find-php-class new file mode 100755 index 0000000..4268dcf --- /dev/null +++ b/emacs/.emacs.d/scripts/find-php-class @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# ;; #!/usr/bin/env -S scsh -e main -o srfi-1 -s +# ;; !# + +# ;; (define (main args) +# ;; (let* ((class-name (cadr args)) +# ;; (file-names +# ;; (run/strings (find "." +# ;; -path "./cdk.out" -prune -o +# ;; -type f +# ;; -name ,(string-append class-name ".php") +# ;; -exec grep "^namespace" "{}" ";") +# ;; (> 2 "/dev/null")))) +# ;; (format #t "~s" +# ;; (delete-duplicates +# ;; (map (lambda (n) +# ;; (string-append +# ;; (match:substring +# ;; (regexp-search (rx "namespace " (submatch (+ any)) ";") n) +# ;; 1) +# ;; "\\" +# ;; class-name)) +# ;; file-names))))) + +main() { + local classname=$1 + + find . \( \ + -path "./cdk.out" \ + -o -path "./punt/tmp" \ + -o -path "./punt/vendor" \ + -o -path "./filament/storage/larastan/cache" \ + -o -path "./filament/vendor" \ + -o -path "./chanced/tmp" \ + -o -path "./chanced/node_modules" \ + -o -path "./chanced/.phpunit.cache" \ + -o -path "./.git" \ + -o -path "./chanced/storage" \ + \) -prune \ + -o -type f -name "${classname}.php" \ + -exec grep '^namespace' '{}' \; \ + | awk "{ print substr(\$0, 11, length(\$0) - 11) \"\\\\${classname}\" }" + # for f in "$(git ls-files | grep "${classname}.php")"; do + # grep '^namespace' "$f" | awk '{ print substr($0, 11, length($0) - 11) }' + # done +} + +main "$@" -- cgit v1.3-2-g0d8e