Parcourir la source

Fortune: drag variables to the bottom

Marco Hinz il y a 8 ans
Parent
commit
e0183c8913
1 fichiers modifiés avec 57 ajouts et 57 suppressions
  1. 57 57
      autoload/startify/fortune.vim

+ 57 - 57
autoload/startify/fortune.vim

@@ -1,5 +1,62 @@
 scriptencoding utf-8
 
+" Function: s:get_random_offset {{{1
+function! s:get_random_offset(max) abort
+  return str2nr(matchstr(reltimestr(reltime()), '\.\zs\d\+')[1:]) % a:max
+endfunction
+
+" Function: s:draw_box {{{1
+function! s:draw_box(lines) abort
+  let longest_line = max(map(copy(a:lines), 'strwidth(v:val)'))
+  let top_bottom_without_corners = repeat(s:char_top_bottom, longest_line + 2)
+  let top = s:char_top_left . top_bottom_without_corners . s:char_top_right
+  let bottom = s:char_bottom_left . top_bottom_without_corners . s:char_bottom_right
+  let lines = [top]
+  for l in a:lines
+    let offset = longest_line - strwidth(l)
+    let lines += [s:char_sides . ' '. l . repeat(' ', offset) .' ' . s:char_sides]
+  endfor
+  let lines += [bottom]
+  return lines
+endfunction
+
+" Function: #quote {{{1
+function! startify#fortune#quote() abort
+  return s:quotes[s:get_random_offset(len(s:quotes))]
+endfunction
+
+" Function: #boxed {{{1
+function! startify#fortune#boxed(...) abort
+  let wrapped_quote = []
+  let Quote = a:0 && type(a:1) == type([]) ? a:1 : startify#fortune#quote()
+  let quote = type(Quote) == type(function('tr')) ? Quote() : Quote
+  for line in quote
+    let wrapped_quote += split(line, '\%50c.\{-}\zs\s', 1)
+  endfor
+  let wrapped_quote = s:draw_box(wrapped_quote)
+  return wrapped_quote
+endfunction
+
+" Function: #cowsay {{{1
+function! startify#fortune#cowsay(...) abort
+  if a:0
+    let s:char_top_bottom   = get(a:000, 0, s:char_top_bottom)
+    let s:char_sides        = get(a:000, 1, s:char_sides)
+    let s:char_top_left     = get(a:000, 2, s:char_top_left)
+    let s:char_top_right    = get(a:000, 3, s:char_top_right)
+    let s:char_bottom_right = get(a:000, 4, s:char_bottom_right)
+    let s:char_bottom_left  = get(a:000, 5, s:char_bottom_left)
+  endif
+  let boxed_quote = startify#fortune#boxed()
+  let boxed_quote += s:cow
+  return map(boxed_quote, '"   ". v:val')
+endfunction
+
+" Function: #predefined_quotes {{{1
+function! startify#fortune#predefined_quotes() abort
+  return s:predefined_quotes
+endfunction
+
 " Variables {{{1
 let s:cow = [
       \ '       o',
@@ -129,63 +186,6 @@ let s:predefined_quotes = [
       \ ['Sign your work.', '', 'Craftsmen of an earlier age were proud to sign their work. You should be, too.'],
       \ ]
 
-" Function: #predefined_quotes {{{1
-function! startify#fortune#predefined_quotes() abort
-  return s:predefined_quotes
-endfunction
-
 let s:quotes = exists('g:startify_custom_header_quotes')
       \ ? g:startify_custom_header_quotes
       \ : startify#fortune#predefined_quotes()
-
-" Function: s:get_random_offset {{{1
-function! s:get_random_offset(max) abort
-  return str2nr(matchstr(reltimestr(reltime()), '\.\zs\d\+')[1:]) % a:max
-endfunction
-
-" Function: s:draw_box {{{1
-function! s:draw_box(lines) abort
-  let longest_line = max(map(copy(a:lines), 'strwidth(v:val)'))
-  let top_bottom_without_corners = repeat(s:char_top_bottom, longest_line + 2)
-  let top = s:char_top_left . top_bottom_without_corners . s:char_top_right
-  let bottom = s:char_bottom_left . top_bottom_without_corners . s:char_bottom_right
-  let lines = [top]
-  for l in a:lines
-    let offset = longest_line - strwidth(l)
-    let lines += [s:char_sides . ' '. l . repeat(' ', offset) .' ' . s:char_sides]
-  endfor
-  let lines += [bottom]
-  return lines
-endfunction
-
-" Function: #quote {{{1
-function! startify#fortune#quote() abort
-  return s:quotes[s:get_random_offset(len(s:quotes))]
-endfunction
-
-" Function: #boxed {{{1
-function! startify#fortune#boxed(...) abort
-  let wrapped_quote = []
-  let Quote = a:0 && type(a:1) == type([]) ? a:1 : startify#fortune#quote()
-  let quote = type(Quote) == type(function('tr')) ? Quote() : Quote
-  for line in quote
-    let wrapped_quote += split(line, '\%50c.\{-}\zs\s', 1)
-  endfor
-  let wrapped_quote = s:draw_box(wrapped_quote)
-  return wrapped_quote
-endfunction
-
-" Function: #cowsay {{{1
-function! startify#fortune#cowsay(...) abort
-  if a:0
-    let s:char_top_bottom   = get(a:000, 0, s:char_top_bottom)
-    let s:char_sides        = get(a:000, 1, s:char_sides)
-    let s:char_top_left     = get(a:000, 2, s:char_top_left)
-    let s:char_top_right    = get(a:000, 3, s:char_top_right)
-    let s:char_bottom_right = get(a:000, 4, s:char_bottom_right)
-    let s:char_bottom_left  = get(a:000, 5, s:char_bottom_left)
-  endif
-  let boxed_quote = startify#fortune#boxed()
-  let boxed_quote += s:cow
-  return map(boxed_quote, '"   ". v:val')
-endfunction