diff --git a/.gitignore b/.gitignore index 15fdd9a..b1409d6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,7 @@ yarn-error.log .shadow-cljs .nrepl-port nohup.out -lib/**/*.elc \ No newline at end of file +lib/**/*.elc +*.elc +tmp/ +test-runner/ \ No newline at end of file diff --git a/config/fg42.user.el b/config/fg42.user.el index ad327ff..075d6f8 100644 --- a/config/fg42.user.el +++ b/config/fg42.user.el @@ -14,7 +14,7 @@ ;; ========= ;; Disable abilities which you don't want. (disable 'rbenv 'helm 'spell 'linum 'tabbar - 'smart-mode-line 'desktop-mode 'lsp + 'smart-mode-line 'desktop-mode 'dired+ 'guru 'emoji 'elpy 'github 'versioned-backup) @@ -34,6 +34,7 @@ 'common-lisp 'python 'arduino + 'java 'racket 'irc 'latex) diff --git a/lib/extensions/development.el b/lib/extensions/development.el index 8b64fe6..d0560c0 100644 --- a/lib/extensions/development.el +++ b/lib/extensions/development.el @@ -68,6 +68,9 @@ (depends-on 'lsp-ui) (depends-on 'company-lsp)) +(with-ability dap + (depends-on 'dap-mode)) + ;; TODO: Add flycheck-color-modebar ;; TODO Add flycheck-tip diff --git a/lib/extensions/development/init.el b/lib/extensions/development/init.el index 5bc8cc2..bce090e 100644 --- a/lib/extensions/development/init.el +++ b/lib/extensions/development/init.el @@ -66,6 +66,9 @@ (setq lsp-prefer-flymake nil) (add-hook 'lsp-mode-hook 'lsp-ui-mode)) + (ability dap ('lsp) + (dap-mode 1) + (dap-ui-mode 1)) (ability bookmarks () (setq bm-restore-repository-on-load t) diff --git a/lib/extensions/java.el b/lib/extensions/java.el new file mode 100644 index 0000000..fd27e9a --- /dev/null +++ b/lib/extensions/java.el @@ -0,0 +1,27 @@ +;;; JavaExtension --- Enables java development on FG42 +;;; Commentary: +;;; Code: + +(require 'fpkg) +(require 'fg42/extension) +(require 'extensions/java/init) + +;; Dependencies ---------------------------------- + +(depends-on 'gradle-mode) + +(with-ability lsp-java + (depends-on 'lsp-java)) + + +(defun java-doc () + "TBD") + +;; Extension ------------------------------------- +(extension java + :version "2.32" + :on-initialize extensions/java-initialize + :docs "lib/extensions/java/readme.org") + +(provide 'extensions/java) +;;; java.el ends here diff --git a/lib/extensions/java/init.el b/lib/extensions/java/init.el new file mode 100644 index 0000000..52a401c --- /dev/null +++ b/lib/extensions/java/init.el @@ -0,0 +1,21 @@ +;;; java-init --- The entry point for common lisp extension +;;; Commentary: +;;; Code: + +;;;###autoload +(defun extensions/java-initialize () + "Initialize the common Lisp extension." + + (require 'gradle-mode) + (add-hook 'java-mode-hook + '(lambda() + (ability lsp-java ('lsp) + (setq lsp-java-server-install-dir fg42-tmp) + (lsp)) + (ability dap-java ('dap) + (require 'dap-java)) + (gradle-mode 1)))) + + +(provide 'extensions/java/init) +;;; init ends here diff --git a/lib/fg42.el b/lib/fg42.el index 0024d06..ad6ecc8 100644 --- a/lib/fg42.el +++ b/lib/fg42.el @@ -27,6 +27,8 @@ (defvar fg42-home (getenv "FG42_HOME") "The pass to fg42-home.") +(defvar fg42-tmp (concat fg42-home "/tmp")) + (defvar fg42-before-initialize-hook nil "This hook will be called before FG42 initilization process.") @@ -43,6 +45,7 @@ (defun fg42-initialize () "Initialize FG42 editor." (run-hooks 'fg42-before-initialize-hook) + (mkdir fg42-tmp t) (setq package-user-dir (concat fg42-home "/packages")) (fpkg-initialize) (initialize-extensions)