From 9bdb6dce30f05f9ea5fc72c9e9fca340471fdf29 Mon Sep 17 00:00:00 2001 From: Shanavas M Date: Sun, 13 Aug 2017 15:19:51 +0300 Subject: [PATCH] Add kotlin layer --- layers/+lang/kotlin/README.org | 25 +++++++++++++++++ layers/+lang/kotlin/img/kotlin.png | Bin 0 -> 9827 bytes layers/+lang/kotlin/packages.el | 42 +++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 layers/+lang/kotlin/README.org create mode 100644 layers/+lang/kotlin/img/kotlin.png create mode 100644 layers/+lang/kotlin/packages.el diff --git a/layers/+lang/kotlin/README.org b/layers/+lang/kotlin/README.org new file mode 100644 index 000000000..4688181cc --- /dev/null +++ b/layers/+lang/kotlin/README.org @@ -0,0 +1,25 @@ +#+TITLE: kotlin layer + +[[file:img/kotlin.png]] + +* Table of Contents :TOC_4_gh:noexport: +- [[#description][Description]] + - [[#features][Features:]] +- [[#install][Install]] + - [[#layer][Layer]] + - [[#ktlint][Ktlint]] + +* Description +This layer adds support for [[http://kotlinlang.org/][Kotlin]] in Spacemacs + +** Features: + - Linting with [[https://github.com/shyiko/ktlint][ktlint]] and [[https://github.com/whirm/flycheck-kotlin][flycheck-kotlin]] + - navigation with `ggtags` + +* Install +** Layer + To use this configuration layer, add it to your =~/.spacemacs=. You will need to + add =kotlin= to the existing =dotspacemacs-configuration-layers= list in this + file. +** Ktlint + You must install [[https://github.com/shyiko/ktlint][ktlint]] and make sure that the `ktlint` binary is on Emacs' `exec-path` diff --git a/layers/+lang/kotlin/img/kotlin.png b/layers/+lang/kotlin/img/kotlin.png new file mode 100644 index 0000000000000000000000000000000000000000..344e1f9ceedb78d3bb9d150259b6f79c3f986f41 GIT binary patch literal 9827 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 literal 0 HcmV?d00001 diff --git a/layers/+lang/kotlin/packages.el b/layers/+lang/kotlin/packages.el new file mode 100644 index 000000000..b7fb06833 --- /dev/null +++ b/layers/+lang/kotlin/packages.el @@ -0,0 +1,42 @@ +;;; packages.el --- kotlin layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2017 Sylvain Benner & Contributors +;; +;; Author: Shanavas M +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +;;; Code: + +(defconst kotlin-packages + '( + kotlin-mode + flycheck + (flycheck-kotlin :requires flycheck) + ggtags + helm-gtags + )) + +(defun kotlin/post-init-flycheck () + (spacemacs/enable-flycheck 'kotlin-mode)) + +(defun kotlin/init-flycheck-kotlin () + (use-package flycheck-kotlin + :defer t + :init (add-hook 'flycheck-mode-hook #'flycheck-kotlin-setup))) + +(defun kotlin/post-init-ggtags () + (add-hook 'kotlin-mode-local-vars-hook #'spacemacs/ggtags-mode-enable)) + +(defun kotlin/post-init-helm-gtags () + (spacemacs/helm-gtags-define-keys-for-mode 'kotlin-mode)) + +(defun kotlin/init-kotlin-mode () + (use-package kotlin-mode + :defer t + :init)) + +;;; packages.el ends here