49 lines
1.5 KiB
EmacsLisp
49 lines
1.5 KiB
EmacsLisp
|
;;; defuns-java.el ---
|
||
|
|
||
|
;;;###autoload
|
||
|
(defun narf/java-project-package ()
|
||
|
(if (eq major-mode 'java-mode)
|
||
|
(s-chop-suffix "." (s-replace "/" "." (f-dirname (f-relative (buffer-file-name)
|
||
|
(concat (narf/project-root) "/src/")))))
|
||
|
""))
|
||
|
|
||
|
;;;###autoload
|
||
|
(defun narf/java-class-name ()
|
||
|
(if (eq major-mode 'java-mode)
|
||
|
(f-no-ext (f-base (buffer-file-name)))
|
||
|
""))
|
||
|
|
||
|
;; yasnippet defuns
|
||
|
;;;###autoload
|
||
|
(defun narf/java-android-mode-is-layout-file ()
|
||
|
(and android-mode
|
||
|
(eq major-mode 'nxml-mode)
|
||
|
(string-equal (file-name-base (directory-file-name default-directory)) "layout")))
|
||
|
|
||
|
;;;###autoload
|
||
|
(defun narf/java-android-mode-in-tags (&rest tags)
|
||
|
(-contains? tags (android-mode-tag-name)))
|
||
|
|
||
|
;;;###autoload
|
||
|
(defun narf/java-android-mode-tag-name ()
|
||
|
(save-excursion
|
||
|
(let (beg end)
|
||
|
(nxml-backward-up-element)
|
||
|
(evil-forward-word-begin)
|
||
|
(setq beg (point))
|
||
|
(evil-forward-WORD-end)
|
||
|
(setq end (1+ (point)))
|
||
|
(buffer-substring-no-properties beg end))))
|
||
|
|
||
|
;;;###autoload
|
||
|
(defun narf|android-mode-enable-maybe ()
|
||
|
(let ((root (narf/project-root)))
|
||
|
(when (or (narf/project-has-files "local.properties" root)
|
||
|
(narf/project-has-files "AndroidManifest.xml" root)
|
||
|
(narf/project-has-files "src/main/AndroidManifest.xml" root))
|
||
|
(android-mode +1)
|
||
|
(narf/set-build-command "./gradlew %s" "build.gradle"))))
|
||
|
|
||
|
(provide 'defuns-java)
|
||
|
;;; defuns-java.el ends here
|