From 52448c466541fd442bbd705da89e0d926cb9c24b Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Tue, 17 Sep 2019 20:55:41 +0100 Subject: [PATCH] typescript and commonlisp have been added --- lib/extensions/clojure.el | 1 + lib/extensions/common-lisp.el | 10 +++++++- lib/extensions/common-lisp/init.el | 3 ++- lib/extensions/typescript.el | 25 +++++++++++++++++++ lib/extensions/typescript/init.el | 40 ++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 lib/extensions/typescript.el create mode 100644 lib/extensions/typescript/init.el diff --git a/lib/extensions/clojure.el b/lib/extensions/clojure.el index de89377..8528e0e 100644 --- a/lib/extensions/clojure.el +++ b/lib/extensions/clojure.el @@ -6,6 +6,7 @@ (depends-on 'clojure-mode) (depends-on 'cider) (depends-on 'paredit) +(depends-on 'parinfer) (depends-on 'flycheck) (depends-on 'flycheck-clojure) (depends-on 'clj-refactor) diff --git a/lib/extensions/common-lisp.el b/lib/extensions/common-lisp.el index 4f2bb41..0ca4d65 100644 --- a/lib/extensions/common-lisp.el +++ b/lib/extensions/common-lisp.el @@ -1,16 +1,23 @@ +;;; CommonLispExtension --- Enables common lisp development on FG42 +;;; Commentary: +;; In order to user racket extension `racket' itself should +;; be available on the path provided by `exec-path'. +;;; Code: + (require 'fpkg) (require 'fg42/extension) (require 'extensions/common-lisp/init) ;; Dependencies ---------------------------------- (depends-on 'paredit) +(depends-on 'parinfer) (depends-on 'flycheck) (depends-on 'rainbow-delimiters) (depends-on 'slime) (depends-on 'slime-company) (defun common-lisp-doc () - "") + "TBD") ;; Extension ------------------------------------- (extension common-lisp @@ -19,3 +26,4 @@ :docs "lib/extensions/common-lisp/readme.org") (provide 'extensions/common-lisp) +;;; common-lisp.el ends here diff --git a/lib/extensions/common-lisp/init.el b/lib/extensions/common-lisp/init.el index 027d013..736299d 100644 --- a/lib/extensions/common-lisp/init.el +++ b/lib/extensions/common-lisp/init.el @@ -4,7 +4,7 @@ (defvar default-lisp-platform "sbcl" "The default Lisp compiler/interpreter to be used with common-lisp extension.") -(defvar ql-slime-helper-path "~/.quicklisp/slime-helper.el" +(defvar ql-slime-helper-path "~/quicklisp/slime-helper.el" "Default path for the slime-helper installed using quicklisp.") @@ -15,6 +15,7 @@ (setq inferior-lisp-program default-lisp-platform) (setq slime-contribs '(slime-fancy)) + (slime-setup '(slime-company)) (add-hook 'slime-load-hook (lambda () diff --git a/lib/extensions/typescript.el b/lib/extensions/typescript.el new file mode 100644 index 0000000..89777ce --- /dev/null +++ b/lib/extensions/typescript.el @@ -0,0 +1,25 @@ +;;; TypescriptExtension --- Enables Typescript development on FG42 +;;; Commentary: +;; In order to user typescript extension `typescript' itself should +;; be available on the path provided by `exec-path'. +;;; Code: + +(require 'fpkg) +(require 'fg42/extension) +(require 'extensions/typescript/init) + +;; Dependencies ---------------------------------- +(depends-on 'typescript-mode) +(depends-on 'tide) + +(defun typescript-doc () + "Something fun.") + +;; Extension ------------------------------------- +(extension typescript + :version "2.32" + :on-initialize extensions/typescript-initialize + :docs "lib/extensions/typescript/readme.org") + +(provide 'extensions/typescript) +;;; typescript.el ends here diff --git a/lib/extensions/typescript/init.el b/lib/extensions/typescript/init.el new file mode 100644 index 0000000..f59d8ec --- /dev/null +++ b/lib/extensions/typescript/init.el @@ -0,0 +1,40 @@ +;;; TypescriptExtension --- Enables Typescript development on FG42 +;;; Commentary: +;;; Code: + +(defun setup-tide-mode () + (interactive) + (require 'typescript-mode) + (require 'web-mode) + (setq tmp-directory (concat (getenv "HOME") "/.tmp")) + ;; aligns annotation to the right hand side + (setq company-tooltip-align-annotations t) + + ;; formats the buffer before saving + (add-hook 'before-save-hook 'tide-format-before-save) + (add-hook 'typescript-mode-hook #'setup-tide-mode) + + (tide-setup) + (flycheck-mode 1) + (setq flycheck-check-syntax-automatically '(save mode-enabled)) + (eldoc-mode 1) + (tide-hl-identifier-mode 1) + (company-mode 1)) + +;;;###autoload +(defun extensions/typescript-initialize () + "Initialize the typescript extension." + (ability typescript-editor ('flycheck) + (add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode)) + + (add-hook 'web-mode-hook + (lambda () + (when (string-equal "tsx" (file-name-extension buffer-file-name)) + (setup-tide-mode) + (tide-hl-identifier-mode)))) + ;; enable typescript-tslint checker + (flycheck-add-mode 'typescript-tslint 'web-mode))) + + +(provide 'extensions/typescript/init) +;;; init.el ends here