Merge pull request #296 from ag91/master

Add scala-mode snippet to define functions along with their docstring
This commit is contained in:
Andrea Crotti 2019-02-03 00:27:28 +03:00 committed by GitHub
commit 9f59412cd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
# name: docstring function
# contributor: Andrea Giugliano
# inspired by a snippet by Tibor Simko et al.
# --
/**
* $1
* ${3:$
(let* ((indent
(concat "\n * "))
(args
(mapconcat
'(lambda (x)
(if (not (string= (nth 0 x) ""))
;; in Scala I get a separator : for the type
(let ((par-type (mapcar 'string-trim (split-string (nth 0 x) ":")))) (concat "@param " (first par-type) indent "@tparam " (second par-type) indent))
))
(mapcar
'(lambda (x)
(mapcar
'(lambda (x)
(replace-regexp-in-string "[[:blank:]]*$" ""
(replace-regexp-in-string "^[[:blank:]]*" "" x)))
x))
(mapcar '(lambda (x) (split-string x "="))
(split-string yas-text ",")))
indent)))
(if (string= args "")
(concat indent "@return: " indent "@rtype: " indent (make-string 3 34))
(mapconcat
'identity
(list "" args )
indent)))
}
* @return ${4:$(yas-text)}
*
**/
def ${2:name}($3): $4 = $0