aboutsummaryrefslogtreecommitdiffstats
path: root/nichijou/packages/vim.scm
blob: fcdbf428e4cd17e7111c4a6804268ddfbd6df313 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
(define-module (nichijou packages vim)
  #:use-module ((guix licenses)
                #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix gexp)
  #:use-module (guix utils)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix build-system copy)
  #:use-module (gnu packages)
  #:use-module (gnu packages vim)
  #:use-module (gnu packages uml))

(define-public vim-plantuml-syntax
  (package
    (name "vim-plantuml-syntax")
    (version "0.2.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/aklt/plantuml-syntax")
                    (commit "660bbb1ece1e654b2176f76ce0689304c5a4a025")))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "05xf36np8y0gdcd05nzmkawh131lp4mm5cjgjr1byr8cjyl1idr3"))))
    (build-system copy-build-system)
    (arguments
     '(#:install-plan '(("ftdetect" "share/vim/vimfiles/")
                        ("ftplugin" "share/vim/vimfiles/")
                        ("indent" "share/vim/vimfiles/")
                        ("syntax" "share/vim/vimfiles/"))))
    (synopsis "Vim PlantUML Syntax/Plugin/FTDetect")
    (inputs (list plantuml))
    (description
     "This is a vim syntax file for PlantUML.The filetype will be set to
plantuml for @code{*.pu}, @code{*.uml}, @code{*.puml}, @code{*.iuml} or
@code{*.plantuml} files or if the first line of a file contains
@code{@@startuml}. Additionally the makeprg is set to plantuml assuming you
have this executable in your path.")
    (home-page "https://github.com/aklt/plantuml-syntax")
    (license #f)))

(define-public vim-doxygen-toolkit
  (package
    (name "vim-doxygen-toolkit")
    (version "0.2.13")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/vim-scripts/DoxygenToolkit.vim")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1za8li02j4nhqjjsyxg4p78638h5af4izim37zc0p1x55zr3i85r"))))
    (build-system copy-build-system)
    (arguments
     '(#:install-plan '(("plugin" "share/vim/vimfiles/"))))
    (synopsis "Simplify Doxygen documentation in C, C++, Python.")
    (description
     "Currently five purposes have been defined :
@itemize
@item Generates a doxygen license comment.  The tag text is configurable.
@item Generates a doxygen author skeleton.  The tag text is configurable.
@item Generates a doxygen comment skeleton for a C, C++ or Python function or
class, including @code{@@brief}, @code{@@param} (for each named argument), and
@code{@@return}. The tag text as well as a comment block header and footer are
configurable. (Consequently, you can have brief, etc. if you wish, with little
effort.)
@item Ignore code fragment placed in a block defined by #ifdef ... #endif
(C/C++).  The block name must be given to the function.  All of the
corresponding blocks in all the file will be treated and placed in a new block
DOX_SKIP_BLOCK (or any other name that you have configured).  Then you have to
update PREDEFINED value in your doxygen configuration file with correct block
name. You also have to set ENABLE_PREPROCESSING to YES.
@item Generate a doxygen group (beginning and ending). The tag text is
configurable.
@end itemize")
    (home-page "https://www.vim.org/scripts/script.php?script_id=987")
    (license #f)))

(define-public vim-detectindent
  ;; No releases have been tagged.
  (let ((commit "2511f0f02fb046a09fdbdfc8f21c7a6f2d234936")
        (revision "1"))
    (package
      (name "vim-detectindent")
      (version (git-version "0.0.0" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/roryokane/detectindent")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "16k3h64z4ysphchnhgj3jyms51ps0lla885yqznfbknz49pg44cb"))))
      (build-system copy-build-system)
      (arguments
       `(#:install-plan '(("doc" "share/vim/vimfiles/")
                          ("plugin" "share/vim/vimfiles/"))))
      (home-page "https://github.com/roryokane/detectindent")
      (synopsis "Vim script for automatically detecting indent settings")
      (description
       "This script provides a command which will attempt to guess the correct
indent settings for an open file, for use when there is no modeline
available. Specifically, the command sets the following buffer-local
options for you:
@itemize
@item 'expandtab' (tabs vs. spaces)
@item 'shiftwidth' (width of indentation)
@item 'tabstop' (width of a tab character)
@item 'softtabstop' (number of spaces that Tab inserts)
@end itemize

Note that this is a pure Vim implementation, and doesn’t require any external
applications or interpreters.")
      (license #f))))

(define-public vim-deoplete
  (let ((commit "33ed4fa0cd704999f9f74b37640bf6d7334bac37")
        (revision "1"))
    (package
      (name "vim-deoplete")
      (version (git-version "6.1" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/Shougo/deoplete.nvim")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1gabd83gy3skx3q3prk6drn3dzwag5jmzmp43492mihdak0iks3i"))))
      (build-system copy-build-system)
      (inputs (list python-pynvim))
      (arguments
       `(#:install-plan '(("autoload" "share/vim/vimfiles/")
                          ("doc" "share/vim/vimfiles/")
                          ("plugin" "share/vim/vimfiles/")
                          ("rplugin" "share/vim/vimfiles/"))))
      (home-page "https://github.com/Shougo/deoplete.nvim")
      (synopsis
       "Dark powered asynchronous completion framework for neovim/Vim8")
      (description
       "deoplete is the abbreviation of 'dark powered neo-completion'. It
provides an asynchronous keyword completion system in the current
buffer.")
      (license license:expat))))

(define-public vim-lsp
  (let ((commit "309e9e5c8103bee69eabd152c09eaeec2e0a11f9")
        (revision "1"))
    (package
      (name "vim-lsp")
      (version (git-version "0.1.4" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/prabirshrestha/vim-lsp")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "10hwqd07qipn146iwdih3l7f8nbzz01jh7wpbl9f8l84vi5g5c45"))))
      (build-system copy-build-system)
      (arguments
       `(#:install-plan '(("autoload" "share/vim/vimfiles/")
                          ("doc" "share/vim/vimfiles/")
                          ("ftplugin" "share/vim/vimfiles/")
                          ("plugin" "share/vim/vimfiles/")
                          ("syntax" "share/vim/vimfiles/"))))
      (home-page "https://github.com/prabirshrestha/vim-lsp")
      (synopsis "Async language server protocol plugin for vim and neovim")
      (description "Async language server protocol plugin for vim and neovim")
      ;; vim-lsp itself is licensed under expat however it borrows code from other
      ;; third party projects that are not strictly expat. Setting license to #f for now.
      (license #f))))

(define-public vim-deoplete-vim-lsp
  (let ((commit "af5432f1e063fd4c3a5879aa8c2afe82c17dc1c9")
        (revision "1"))
    (package
      (name "vim-deoplete-vim-lsp")
      ;; No releases have been tagged.
      (version (git-version "0.0.0" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url
                       "https://github.com/lighttiger2505/deoplete-vim-lsp")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1s6fw6vkpl0yiya22g13v4i14w3n1ds2zr8zdlwpkk44bf0225px"))))
      (build-system copy-build-system)
      (arguments
       `(#:install-plan '(("autoload" "share/vim/vimfiles/")
                          ("plugin" "share/vim/vimfiles/")
                          ("rplugin" "share/vim/vimfiles/"))))
      (home-page "https://github.com/lighttiger2505/deoplete-vim-lsp")
      (synopsis "deoplete source for vim-lsp")
      (description "deoplete source for vim-lsp")
      (license license:expat))))

(define-public vim-bbye
  (let ((commit "25ef93ac5a87526111f43e5110675032dbcacf56")
        (revision "1"))
    (package
      (name "vim-bbye")
      (version (git-version "1.0.1" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/moll/vim-bbye")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "0dlifpbd05fcgndpkgb31ww8p90pwdbizmgkkq00qkmvzm1ik4y4"))))
      (build-system copy-build-system)
      (arguments
       `(#:install-plan '(("plugin" "share/vim/vimfiles/"))))
      (home-page "https://github.com/moll/vim-bbye")
      (synopsis
       "Delete buffers and close files in Vim without closing your windows or messing up your layout. Like Bclose.vim, but rewritten and well maintained.")

      (description
       "Bbye allows you to do delete buffers (close files) without
                   closing your windows or messing up your layout.

Vim by default closes all windows that have the buffer (file) open when you do
:bdelete. If you've just got your splits and columns perfectly tuned, having
them messed up equals a punch in the face and that's no way to tango.

Bbye gives you :Bdelete and :Bwipeout commands that behave like well designed
citizens:
@itemize
@item Close and remove the buffer.
@item Show another file in that window.
@item Show an empty file if you've got no other files open.
@item Do not leave useless [no file] buffers if you decide to edit another file in that window.
@item Work even if a file's open in multiple windows.
@item Work a-okay with various buffer explorers and tabbars.
@end itemize
Regain your throne as king of buffers!")
      ;; Bbye is released under a Lesser GNU Affero General Public License.
      (license license:agpl3))))