ruby_learner 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +58 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +65 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/new_terminal +25 -0
  13. data/bin/setup +8 -0
  14. data/docs/happy_ruby/RussOlsen_EloquentRuby_c1.pdf +0 -0
  15. data/docs/happy_ruby/RussOlsen_EloquentRuby_c5.pdf +0 -0
  16. data/docs/happy_ruby/TanoshiiRuby_v3_c23.pdf +0 -0
  17. data/docs/happy_ruby/TanoshiiRuby_v5_c1.pdf +0 -0
  18. data/docs/happy_ruby/TanoshiiRuby_v5_c2-3.pdf +0 -0
  19. data/docs/happy_ruby/c2.ipynb +479 -0
  20. data/docs/happy_ruby/c3_4.ipynb +237 -0
  21. data/docs/seminar/8-1.org +18 -0
  22. data/exe/ruby_learner +5 -0
  23. data/lib/ruby_learner/h.rb +14 -0
  24. data/lib/ruby_learner/methods.rb +131 -0
  25. data/lib/ruby_learner/random_h.rb +16 -0
  26. data/lib/ruby_learner/ruby_learner.rb +43 -0
  27. data/lib/ruby_learner/sequential_h.rb +15 -0
  28. data/lib/ruby_learner/typing_practice.rb +21 -0
  29. data/lib/ruby_learner/version.rb +3 -0
  30. data/questions/random_check/.rspec +1 -0
  31. data/questions/random_check/random_h.rb +16 -0
  32. data/questions/random_check/section_1/.rspec +1 -0
  33. data/questions/random_check/section_1/lib/answer.rb +15 -0
  34. data/questions/random_check/section_1/lib/sentence.org +9 -0
  35. data/questions/random_check/section_1/lib/workplace.rb +5 -0
  36. data/questions/random_check/section_1/spec/spec_helper.rb +100 -0
  37. data/questions/random_check/section_1/spec/workplace_spec.rb +10 -0
  38. data/questions/random_check/section_2/.rspec +1 -0
  39. data/questions/random_check/section_2/lib/answer.rb +17 -0
  40. data/questions/random_check/section_2/lib/sentence.org +12 -0
  41. data/questions/random_check/section_2/lib/workplace.rb +5 -0
  42. data/questions/random_check/section_2/spec/.rspec +1 -0
  43. data/questions/random_check/section_2/spec/spec_helper.rb +100 -0
  44. data/questions/random_check/section_2/spec/workplace_spec.rb +11 -0
  45. data/questions/sequential_check/section_1/part_1/lib/answer.rb +9 -0
  46. data/questions/sequential_check/section_1/part_1/lib/sentence.org +9 -0
  47. data/questions/sequential_check/section_1/part_1/lib/workplace.rb +5 -0
  48. data/questions/sequential_check/section_1/part_1/spec/spec_helper.rb +100 -0
  49. data/questions/sequential_check/section_1/part_1/spec/workplace_spec.rb +10 -0
  50. data/questions/sequential_check/section_1/part_2/lib/answer.rb +16 -0
  51. data/questions/sequential_check/section_1/part_2/lib/sentence.org +12 -0
  52. data/questions/sequential_check/section_1/part_2/lib/workplace.rb +5 -0
  53. data/questions/sequential_check/section_1/part_2/spec/.rspec +1 -0
  54. data/questions/sequential_check/section_1/part_2/spec/spec_helper.rb +100 -0
  55. data/questions/sequential_check/section_1/part_2/spec/workplace_spec.rb +11 -0
  56. data/ruby_learner.gemspec +41 -0
  57. data/takahashi/docs/README.org +139 -0
  58. data/takahashi/docs/drill.html +875 -0
  59. data/takahashi/docs/drill.html~ +877 -0
  60. data/takahashi/docs/drill.org +446 -0
  61. data/takahashi/docs/ruby_for_beginner.html +2642 -0
  62. data/takahashi/docs/ruby_for_beginner.org +1430 -0
  63. data/takahashi/sample_prog/answer/10_1.rb +5 -0
  64. data/takahashi/sample_prog/answer/11_1.rb +5 -0
  65. data/takahashi/sample_prog/answer/11_2.rb +4 -0
  66. data/takahashi/sample_prog/answer/1_1.rb +1 -0
  67. data/takahashi/sample_prog/answer/1_2.rb +1 -0
  68. data/takahashi/sample_prog/answer/1_3.rb +1 -0
  69. data/takahashi/sample_prog/answer/2_1.rb +5 -0
  70. data/takahashi/sample_prog/answer/2_2.rb +12 -0
  71. data/takahashi/sample_prog/answer/3_1.rb +10 -0
  72. data/takahashi/sample_prog/answer/4_1.rb +7 -0
  73. data/takahashi/sample_prog/answer/5_1.rb +6 -0
  74. data/takahashi/sample_prog/answer/5_2.rb +3 -0
  75. data/takahashi/sample_prog/answer/6_1.rb +3 -0
  76. data/takahashi/sample_prog/answer/6_2.rb +5 -0
  77. data/takahashi/sample_prog/answer/6_3.rb +5 -0
  78. data/takahashi/sample_prog/answer/6_4.rb +7 -0
  79. data/takahashi/sample_prog/answer/7_1.rb +3 -0
  80. data/takahashi/sample_prog/answer/7_2.rb +8 -0
  81. data/takahashi/sample_prog/answer/9_1.rb +3 -0
  82. data/takahashi/sample_prog/answer/9_2.rb +5 -0
  83. data/takahashi/sample_prog/answer/9_3.rb +10 -0
  84. data/takahashi/sample_prog/answer/hello.rb +3 -0
  85. data/workshop/.rspec +1 -0
  86. data/workshop/emacs.d/ac-comphist.dat +50 -0
  87. data/workshop/emacs.d/cp5022x.el +156 -0
  88. data/workshop/emacs.d/elpa/archives/gnu/archive-contents +1240 -0
  89. data/workshop/emacs.d/elpa/archives/melpa/archive-contents +2 -0
  90. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-autoloads.el +65 -0
  91. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.el +551 -0
  92. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.elc +0 -0
  93. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-pkg.el +6 -0
  94. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.el +2164 -0
  95. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.elc +0 -0
  96. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ada-mode +72 -0
  97. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c++-mode +99 -0
  98. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c-mode +55 -0
  99. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/caml-mode +231 -0
  100. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojure-mode +580 -0
  101. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojurescript-mode +475 -0
  102. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/coq-mode +278 -0
  103. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/css-mode +874 -0
  104. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/erlang-mode +216 -0
  105. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ess-julia-mode +37 -0
  106. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/go-mode +25 -0
  107. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/haskell-mode +679 -0
  108. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/java-mode +53 -0
  109. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/js-mode +148 -0
  110. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/julia-mode +37 -0
  111. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/lua-mode +21 -0
  112. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/nim-mode +70 -0
  113. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/objc-mode +161 -0
  114. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/octave-mode +46 -0
  115. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/php-mode +6144 -0
  116. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/python-mode +379 -0
  117. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/qml-mode +183 -0
  118. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ruby-mode +181 -0
  119. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scala-mode +1347 -0
  120. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scheme-mode +216 -0
  121. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sclang-mode +1481 -0
  122. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sh-mode +182 -0
  123. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/swift-mode +87 -0
  124. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tcl-mode +172 -0
  125. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ts-mode +797 -0
  126. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tuareg-mode +231 -0
  127. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/verilog-mode +313 -0
  128. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-autoloads.el +16 -0
  129. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-pkg.el +2 -0
  130. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.el +90 -0
  131. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.elc +0 -0
  132. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-autoloads.el +26 -0
  133. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-pkg.el +2 -0
  134. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.el +877 -0
  135. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.elc +0 -0
  136. data/workshop/emacs.d/elpa/haml-mode-readme.txt +8 -0
  137. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.el +918 -0
  138. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.elc +0 -0
  139. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-autoloads.el +32 -0
  140. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-pkg.el +8 -0
  141. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.el +912 -0
  142. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.elc +0 -0
  143. data/workshop/emacs.d/elpa/ox-bibtex-chinese-readme.txt +21 -0
  144. data/workshop/emacs.d/elpa/popup-20160709.729/popup-autoloads.el +15 -0
  145. data/workshop/emacs.d/elpa/popup-20160709.729/popup-pkg.el +2 -0
  146. data/workshop/emacs.d/elpa/popup-20160709.729/popup.el +1432 -0
  147. data/workshop/emacs.d/elpa/popup-20160709.729/popup.elc +0 -0
  148. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-autoloads.el +33 -0
  149. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-pkg.el +2 -0
  150. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.el +470 -0
  151. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.elc +0 -0
  152. data/workshop/emacs.d/elpa/yaml-mode-readme.txt +25 -0
  153. data/workshop/emacs.d/haml-mode-master/.gitignore +1 -0
  154. data/workshop/emacs.d/haml-mode-master/.mailmap +2 -0
  155. data/workshop/emacs.d/haml-mode-master/MIT-LICENSE +20 -0
  156. data/workshop/emacs.d/haml-mode-master/README.md +47 -0
  157. data/workshop/emacs.d/haml-mode-master/haml-mode.el +887 -0
  158. data/workshop/emacs.d/iceberg_theme.el +202 -0
  159. data/workshop/emacs.d/init-open-recentf.el +133 -0
  160. data/workshop/emacs.d/init.el +229 -0
  161. data/workshop/emacs.d/inits/line-num.el +264 -0
  162. data/workshop/emacs.d/install-elisp.el +366 -0
  163. data/workshop/emacs.d/markdown-mode/markdown-mode.el +5978 -0
  164. data/workshop/emacs.d/notes +12 -0
  165. data/workshop/emacs.d/processing-mode/processing-mode.el +275 -0
  166. data/workshop/emacs.d/recentf +31 -0
  167. data/workshop/emacs.d/ruby-mode/inf-ruby.el +416 -0
  168. data/workshop/emacs.d/ruby-mode/rdoc-mode.el +130 -0
  169. data/workshop/emacs.d/ruby-mode/ruby-electric.el +205 -0
  170. data/workshop/emacs.d/ruby-mode/ruby-mode.el +1496 -0
  171. data/workshop/emacs.d/ruby-mode/ruby-style.el +78 -0
  172. data/workshop/emacs.d/ruby-mode/rubydb2x.el +104 -0
  173. data/workshop/emacs.d/ruby-mode/rubydb3x.el +115 -0
  174. data/workshop/emacs.d/ruby_learner_init.el +244 -0
  175. data/workshop/emacs.d/themes/dracula-theme.el +431 -0
  176. data/workshop/emacs.d/themes/iceberg-theme.el +205 -0
  177. data/workshop/emacs.d/themes/my-misterioso-theme.el +109 -0
  178. data/workshop/emacs.d/themes/my-wombat-theme.el +121 -0
  179. data/workshop/emacs.d/wiki-mode/wiki.el +976 -0
  180. data/workshop/emacs_help.org +34 -0
  181. data/workshop/lib/answer.rb +1 -0
  182. data/workshop/lib/sentence.org +1 -0
  183. data/workshop/lib/workplace.rb +1 -0
  184. data/workshop/restore/empty.rb +0 -0
  185. data/workshop/spec/spec_helper.rb +100 -0
  186. data/workshop/spec/workplace_spec.rb +1 -0
  187. data/workshop/training_data.txt +3 -0
  188. metadata +343 -0
@@ -0,0 +1,65 @@
1
+ ;;; auto-complete-autoloads.el --- automatically extracted autoloads
2
+ ;;
3
+ ;;; Code:
4
+ (add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path))))
5
+
6
+ ;;;### (autoloads nil "auto-complete" "auto-complete.el" (23223 10762
7
+ ;;;;;; 698347 514000))
8
+ ;;; Generated autoloads from auto-complete.el
9
+
10
+ (autoload 'auto-complete "auto-complete" "\
11
+ Start auto-completion at current point.
12
+
13
+ \(fn &optional SOURCES)" t nil)
14
+
15
+ (autoload 'auto-complete-mode "auto-complete" "\
16
+ AutoComplete mode
17
+
18
+ \(fn &optional ARG)" t nil)
19
+
20
+ (defvar global-auto-complete-mode nil "\
21
+ Non-nil if Global Auto-Complete mode is enabled.
22
+ See the `global-auto-complete-mode' command
23
+ for a description of this minor mode.
24
+ Setting this variable directly does not take effect;
25
+ either customize it (see the info node `Easy Customization')
26
+ or call the function `global-auto-complete-mode'.")
27
+
28
+ (custom-autoload 'global-auto-complete-mode "auto-complete" nil)
29
+
30
+ (autoload 'global-auto-complete-mode "auto-complete" "\
31
+ Toggle Auto-Complete mode in all buffers.
32
+ With prefix ARG, enable Global Auto-Complete mode if ARG is positive;
33
+ otherwise, disable it. If called from Lisp, enable the mode if
34
+ ARG is omitted or nil.
35
+
36
+ Auto-Complete mode is enabled in all buffers where
37
+ `auto-complete-mode-maybe' would do it.
38
+ See `auto-complete-mode' for more information on Auto-Complete mode.
39
+
40
+ \(fn &optional ARG)" t nil)
41
+
42
+ ;;;***
43
+
44
+ ;;;### (autoloads nil "auto-complete-config" "auto-complete-config.el"
45
+ ;;;;;; (23223 10762 775499 769000))
46
+ ;;; Generated autoloads from auto-complete-config.el
47
+
48
+ (autoload 'ac-config-default "auto-complete-config" "\
49
+
50
+
51
+ \(fn)" nil nil)
52
+
53
+ ;;;***
54
+
55
+ ;;;### (autoloads nil nil ("auto-complete-pkg.el") (23223 10762 695743
56
+ ;;;;;; 886000))
57
+
58
+ ;;;***
59
+
60
+ ;; Local Variables:
61
+ ;; version-control: never
62
+ ;; no-byte-compile: t
63
+ ;; no-update-autoloads: t
64
+ ;; End:
65
+ ;;; auto-complete-autoloads.el ends here
@@ -0,0 +1,551 @@
1
+ ;;; auto-complete-config.el --- auto-complete additional configuations
2
+
3
+ ;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
4
+
5
+ ;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
6
+ ;; Keywords: convenience
7
+ ;; Version: 1.5.0
8
+
9
+ ;; This program is free software; you can redistribute it and/or modify
10
+ ;; it under the terms of the GNU General Public License as published by
11
+ ;; the Free Software Foundation, either version 3 of the License, or
12
+ ;; (at your option) any later version.
13
+
14
+ ;; This program is distributed in the hope that it will be useful,
15
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ ;; GNU General Public License for more details.
18
+
19
+ ;; You should have received a copy of the GNU General Public License
20
+ ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+
22
+ ;;; Commentary:
23
+
24
+ ;;
25
+
26
+ ;;; Code:
27
+
28
+ (require 'cl-lib)
29
+ (require 'auto-complete)
30
+
31
+ (declare-function semantic-analyze-current-context "semantic/analyze")
32
+ (declare-function semantic-tag-class "semantic/tag")
33
+ (declare-function semantic-tag-function-arguments "semantic/tag")
34
+ (declare-function semantic-format-tag-type "semantic/format")
35
+ (declare-function semantic-format-tag-name "semantic/format")
36
+ (declare-function yas-expand-snippet "yasnippet")
37
+ (declare-function oref "eieio" (obj slot))
38
+
39
+
40
+
41
+ ;;;; Additional sources
42
+
43
+ ;; imenu
44
+
45
+ (defvar ac-imenu-index nil)
46
+
47
+ (ac-clear-variable-every-10-minutes 'ac-imenu-index)
48
+
49
+ (defun ac-imenu-candidates ()
50
+ (cl-loop with i = 0
51
+ with stack = (progn
52
+ (unless (local-variable-p 'ac-imenu-index)
53
+ (make-local-variable 'ac-imenu-index))
54
+ (or ac-imenu-index
55
+ (setq ac-imenu-index
56
+ (ignore-errors
57
+ (with-no-warnings
58
+ (imenu--make-index-alist))))))
59
+ with result
60
+ while (and stack (or (not (integerp ac-limit))
61
+ (< i ac-limit)))
62
+ for node = (pop stack)
63
+ if (consp node)
64
+ do
65
+ (let ((car (car node))
66
+ (cdr (cdr node)))
67
+ (if (consp cdr)
68
+ (mapc (lambda (child)
69
+ (push child stack))
70
+ cdr)
71
+ (when (and (stringp car)
72
+ (string-match (concat "^" (regexp-quote ac-prefix)) car))
73
+ ;; Remove extra characters
74
+ (if (string-match "^.*\\(()\\|=\\|<>\\)$" car)
75
+ (setq car (substring car 0 (match-beginning 1))))
76
+ (push car result)
77
+ (cl-incf i))))
78
+ finally return (nreverse result)))
79
+
80
+ (ac-define-source imenu
81
+ '((depends imenu)
82
+ (candidates . ac-imenu-candidates)
83
+ (symbol . "s")))
84
+
85
+ ;; gtags
86
+
87
+ (defface ac-gtags-candidate-face
88
+ '((t (:inherit ac-candidate-face :foreground "navy")))
89
+ "Face for gtags candidate"
90
+ :group 'auto-complete)
91
+
92
+ (defface ac-gtags-selection-face
93
+ '((t (:inherit ac-selection-face :background "navy")))
94
+ "Face for the gtags selected candidate."
95
+ :group 'auto-complete)
96
+
97
+ (defun ac-gtags-candidate ()
98
+ (ignore-errors
99
+ (split-string (shell-command-to-string (format "global -ciq %s" ac-prefix)) "\n")))
100
+
101
+ (ac-define-source gtags
102
+ '((candidates . ac-gtags-candidate)
103
+ (candidate-face . ac-gtags-candidate-face)
104
+ (selection-face . ac-gtags-selection-face)
105
+ (requires . 3)
106
+ (symbol . "s")))
107
+
108
+ ;; yasnippet
109
+
110
+ (defface ac-yasnippet-candidate-face
111
+ '((t (:inherit ac-candidate-face
112
+ :background "sandybrown" :foreground "black")))
113
+ "Face for yasnippet candidate."
114
+ :group 'auto-complete)
115
+
116
+ (defface ac-yasnippet-selection-face
117
+ '((t (:inherit ac-selection-face :background "coral3")))
118
+ "Face for the yasnippet selected candidate."
119
+ :group 'auto-complete)
120
+
121
+ (defun ac-yasnippet-table-hash (table)
122
+ (cond
123
+ ((fboundp 'yas/snippet-table-hash)
124
+ (yas/snippet-table-hash table))
125
+ ((fboundp 'yas/table-hash)
126
+ (yas/table-hash table))))
127
+
128
+ (defun ac-yasnippet-table-parent (table)
129
+ (cond
130
+ ((fboundp 'yas/snippet-table-parent)
131
+ (yas/snippet-table-parent table))
132
+ ((fboundp 'yas/table-parent)
133
+ (yas/table-parent table))))
134
+
135
+ (defun ac-yasnippet-candidate-1 (table)
136
+ (with-no-warnings
137
+ (let ((hashtab (ac-yasnippet-table-hash table))
138
+ (parent (ac-yasnippet-table-parent table))
139
+ candidates)
140
+ (maphash (lambda (key value)
141
+ (push key candidates))
142
+ hashtab)
143
+ (setq candidates (all-completions ac-prefix (nreverse candidates)))
144
+ (if parent
145
+ (setq candidates
146
+ (append candidates (ac-yasnippet-candidate-1 parent))))
147
+ candidates)))
148
+
149
+ (defun ac-yasnippet-candidates ()
150
+ (with-no-warnings
151
+ (cond (;; 0.8 onwards
152
+ (fboundp 'yas-active-keys)
153
+ (all-completions ac-prefix (yas-active-keys)))
154
+ (;; >0.6.0
155
+ (fboundp 'yas/get-snippet-tables)
156
+ (apply 'append (mapcar 'ac-yasnippet-candidate-1
157
+ (condition-case nil
158
+ (yas/get-snippet-tables major-mode)
159
+ (wrong-number-of-arguments
160
+ (yas/get-snippet-tables)))))
161
+ )
162
+ (t
163
+ (let ((table
164
+ (if (fboundp 'yas/snippet-table)
165
+ ;; <0.6.0
166
+ (yas/snippet-table major-mode)
167
+ ;; 0.6.0
168
+ (yas/current-snippet-table))))
169
+ (if table
170
+ (ac-yasnippet-candidate-1 table)))))))
171
+
172
+ (ac-define-source yasnippet
173
+ '((depends yasnippet)
174
+ (candidates . ac-yasnippet-candidates)
175
+ (action . yas/expand)
176
+ (candidate-face . ac-yasnippet-candidate-face)
177
+ (selection-face . ac-yasnippet-selection-face)
178
+ (symbol . "a")))
179
+
180
+ ;; semantic
181
+
182
+ (defun ac-semantic-candidates (prefix)
183
+ (with-no-warnings
184
+ (delete "" ; semantic sometimes returns an empty string
185
+ (mapcar (lambda (elem)
186
+ (cons (semantic-tag-name elem)
187
+ (semantic-tag-clone elem)))
188
+ (ignore-errors
189
+ (or (semantic-analyze-possible-completions
190
+ (semantic-analyze-current-context))
191
+ (senator-find-tag-for-completion prefix)))))))
192
+
193
+ (defun ac-semantic-doc (symbol)
194
+ (with-no-warnings
195
+ (let* ((proto (semantic-format-tag-summarize-with-file symbol nil t))
196
+ (doc (semantic-documentation-for-tag symbol))
197
+ (res proto))
198
+ (when doc
199
+ (setq res (concat res "\n\n" doc)))
200
+ res)))
201
+
202
+ (defun ac-semantic-action ()
203
+ (when (and (boundp 'yas-minor-mode) yas-minor-mode)
204
+ (let* ((tag (car (last (oref (semantic-analyze-current-context) prefix))))
205
+ (class (semantic-tag-class tag))
206
+ (args))
207
+ (when (eq class 'function)
208
+ (setq args (semantic-tag-function-arguments tag))
209
+ (yas-expand-snippet
210
+ (concat "("
211
+ (mapconcat
212
+ (lambda (arg)
213
+ (let ((arg-type (semantic-format-tag-type arg nil))
214
+ (arg-name (semantic-format-tag-name arg nil)))
215
+ (concat "${"
216
+ (if (string= arg-name "")
217
+ arg-type
218
+ (concat arg-type " " arg-name))
219
+ "}")))
220
+ args
221
+ ", ")
222
+ ")$0"))))))
223
+
224
+ (ac-define-source semantic
225
+ '((available . (or (require 'semantic-ia nil t)
226
+ (require 'semantic/ia nil t)))
227
+ (candidates . (ac-semantic-candidates ac-prefix))
228
+ (document . ac-semantic-doc)
229
+ (action . ac-semantic-action)
230
+ (prefix . cc-member)
231
+ (requires . 0)
232
+ (symbol . "m")))
233
+
234
+ (ac-define-source semantic-raw
235
+ '((available . (or (require 'semantic-ia nil t)
236
+ (require 'semantic/ia nil t)))
237
+ (candidates . (ac-semantic-candidates ac-prefix))
238
+ (document . ac-semantic-doc)
239
+ (action . ac-semantic-action)
240
+ (symbol . "s")))
241
+
242
+ ;; eclim
243
+
244
+ (defun ac-eclim-candidates ()
245
+ (with-no-warnings
246
+ (cl-loop for c in (eclim/java-complete)
247
+ collect (nth 1 c))))
248
+
249
+ (ac-define-source eclim
250
+ '((candidates . ac-eclim-candidates)
251
+ (prefix . c-dot)
252
+ (requires . 0)
253
+ (symbol . "f")))
254
+
255
+ ;; css
256
+
257
+ ;; Copied from company-css.el
258
+ (defconst ac-css-property-alist
259
+ ;; see http://www.w3.org/TR/CSS21/propidx.html
260
+ '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center"
261
+ "center-right" "right" "far-right" "right-side" "behind" "leftwards"
262
+ "rightwards")
263
+ ("background" background-color background-image background-repeat
264
+ background-attachment background-position)
265
+ ("background-attachment" "scroll" "fixed")
266
+ ("background-color" color "transparent")
267
+ ("background-image" uri "none")
268
+ ("background-position" percentage length "left" "center" "right" percentage
269
+ length "top" "center" "bottom" "left" "center" "right" "top" "center"
270
+ "bottom")
271
+ ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat")
272
+ ("border" border-width border-style border-color)
273
+ ("border-bottom" border)
274
+ ("border-bottom-color" border-color)
275
+ ("border-bottom-style" border-style)
276
+ ("border-bottom-width" border-width)
277
+ ("border-collapse" "collapse" "separate")
278
+ ("border-color" color "transparent")
279
+ ("border-left" border)
280
+ ("border-left-color" border-color)
281
+ ("border-left-style" border-style)
282
+ ("border-left-width" border-width)
283
+ ("border-right" border)
284
+ ("border-right-color" border-color)
285
+ ("border-right-style" border-style)
286
+ ("border-right-width" border-width)
287
+ ("border-spacing" length length)
288
+ ("border-style" border-style)
289
+ ("border-top" border)
290
+ ("border-top-color" border-color)
291
+ ("border-top-style" border-style)
292
+ ("border-top-width" border-width)
293
+ ("border-width" border-width)
294
+ ("bottom" length percentage "auto")
295
+ ("caption-side" "top" "bottom")
296
+ ("clear" "none" "left" "right" "both")
297
+ ("clip" shape "auto")
298
+ ("color" color)
299
+ ("content" "normal" "none" string uri counter "attr()" "open-quote"
300
+ "close-quote" "no-open-quote" "no-close-quote")
301
+ ("counter-increment" identifier integer "none")
302
+ ("counter-reset" identifier integer "none")
303
+ ("cue" cue-before cue-after)
304
+ ("cue-after" uri "none")
305
+ ("cue-before" uri "none")
306
+ ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize"
307
+ "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize"
308
+ "w-resize" "text" "wait" "help" "progress")
309
+ ("direction" "ltr" "rtl")
310
+ ("display" "inline" "block" "list-item" "run-in" "inline-block" "table"
311
+ "inline-table" "table-row-group" "table-header-group" "table-footer-group"
312
+ "table-row" "table-column-group" "table-column" "table-cell"
313
+ "table-caption" "none")
314
+ ("elevation" angle "below" "level" "above" "higher" "lower")
315
+ ("empty-cells" "show" "hide")
316
+ ("float" "left" "right" "none")
317
+ ("font" font-style font-variant font-weight font-size "/" line-height
318
+ font-family "caption" "icon" "menu" "message-box" "small-caption"
319
+ "status-bar")
320
+ ("font-family" family-name generic-family)
321
+ ("font-size" absolute-size relative-size length percentage)
322
+ ("font-style" "normal" "italic" "oblique")
323
+ ("font-variant" "normal" "small-caps")
324
+ ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400"
325
+ "500" "600" "700" "800" "900")
326
+ ("height" length percentage "auto")
327
+ ("left" length percentage "auto")
328
+ ("letter-spacing" "normal" length)
329
+ ("line-height" "normal" number length percentage)
330
+ ("list-style" list-style-type list-style-position list-style-image)
331
+ ("list-style-image" uri "none")
332
+ ("list-style-position" "inside" "outside")
333
+ ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero"
334
+ "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin"
335
+ "armenian" "georgian" "lower-alpha" "upper-alpha" "none")
336
+ ("margin" margin-width)
337
+ ("margin-bottom" margin-width)
338
+ ("margin-left" margin-width)
339
+ ("margin-right" margin-width)
340
+ ("margin-top" margin-width)
341
+ ("max-height" length percentage "none")
342
+ ("max-width" length percentage "none")
343
+ ("min-height" length percentage)
344
+ ("min-width" length percentage)
345
+ ("orphans" integer)
346
+ ("outline" outline-color outline-style outline-width)
347
+ ("outline-color" color "invert")
348
+ ("outline-style" border-style)
349
+ ("outline-width" border-width)
350
+ ("overflow" "visible" "hidden" "scroll" "auto")
351
+ ("padding" padding-width)
352
+ ("padding-bottom" padding-width)
353
+ ("padding-left" padding-width)
354
+ ("padding-right" padding-width)
355
+ ("padding-top" padding-width)
356
+ ("page-break-after" "auto" "always" "avoid" "left" "right")
357
+ ("page-break-before" "auto" "always" "avoid" "left" "right")
358
+ ("page-break-inside" "avoid" "auto")
359
+ ("pause" time percentage)
360
+ ("pause-after" time percentage)
361
+ ("pause-before" time percentage)
362
+ ("pitch" frequency "x-low" "low" "medium" "high" "x-high")
363
+ ("pitch-range" number)
364
+ ("play-during" uri "mix" "repeat" "auto" "none")
365
+ ("position" "static" "relative" "absolute" "fixed")
366
+ ("quotes" string string "none")
367
+ ("richness" number)
368
+ ("right" length percentage "auto")
369
+ ("speak" "normal" "none" "spell-out")
370
+ ("speak-header" "once" "always")
371
+ ("speak-numeral" "digits" "continuous")
372
+ ("speak-punctuation" "code" "none")
373
+ ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster"
374
+ "slower")
375
+ ("stress" number)
376
+ ("table-layout" "auto" "fixed")
377
+ ("text-align" "left" "right" "center" "justify")
378
+ ("text-decoration" "none" "underline" "overline" "line-through" "blink")
379
+ ("text-indent" length percentage)
380
+ ("text-transform" "capitalize" "uppercase" "lowercase" "none")
381
+ ("top" length percentage "auto")
382
+ ("unicode-bidi" "normal" "embed" "bidi-override")
383
+ ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle"
384
+ "bottom" "text-bottom" percentage length)
385
+ ("visibility" "visible" "hidden" "collapse")
386
+ ("voice-family" specific-voice generic-voice "*" specific-voice
387
+ generic-voice)
388
+ ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud"
389
+ "x-loud")
390
+ ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
391
+ ("widows" integer)
392
+ ("width" length percentage "auto")
393
+ ("word-spacing" "normal" length)
394
+ ("z-index" "auto" integer))
395
+ "A list of CSS properties and their possible values.")
396
+
397
+ (defconst ac-css-value-classes
398
+ '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large"
399
+ "xx-large")
400
+ (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
401
+ "ridge" "inset" "outset")
402
+ (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy"
403
+ "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow"
404
+ "rgb")
405
+ (counter "counter")
406
+ (family-name "Courier" "Helvetica" "Times")
407
+ (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace")
408
+ (generic-voice "male" "female" "child")
409
+ (margin-width "auto") ;; length percentage
410
+ (relative-size "larger" "smaller")
411
+ (shape "rect")
412
+ (uri "url"))
413
+ "A list of CSS property value classes and their contents.")
414
+
415
+ (defconst ac-css-pseudo-classes
416
+ '("active" "after" "before" "first" "first-child" "first-letter" "first-line"
417
+ "focus" "hover" "lang" "left" "link" "right" "visited")
418
+ "Identifiers for CSS pseudo-elements and pseudo-classes.")
419
+
420
+ (defvar ac-css-property nil
421
+ "Current editing property.")
422
+
423
+ (defun ac-css-prefix ()
424
+ (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:[^;]*\\=" nil t))
425
+ (setq ac-css-property (match-string 1))
426
+ (or (ac-prefix-symbol) (point))))
427
+
428
+ (defun ac-css-property-candidates ()
429
+ (let ((list (assoc-default ac-css-property ac-css-property-alist)))
430
+ (if list
431
+ (cl-loop with seen
432
+ with value
433
+ while (setq value (pop list))
434
+ if (symbolp value)
435
+ do (unless (memq value seen)
436
+ (push value seen)
437
+ (setq list
438
+ (append list
439
+ (or (assoc-default value ac-css-value-classes)
440
+ (assoc-default (symbol-name value) ac-css-property-alist)))))
441
+ else collect value)
442
+ ac-css-pseudo-classes)))
443
+
444
+ (ac-define-source css-property
445
+ '((candidates . ac-css-property-candidates)
446
+ (prefix . ac-css-prefix)
447
+ (requires . 0)))
448
+
449
+ ;; slime
450
+ (ac-define-source slime
451
+ '((depends slime)
452
+ (candidates . (car (slime-simple-completions ac-prefix)))
453
+ (symbol . "s")
454
+ (cache)))
455
+
456
+ ;; ghc-mod
457
+ (ac-define-source ghc-mod
458
+ '((depends ghc)
459
+ (candidates . (ghc-select-completion-symbol))
460
+ (symbol . "s")
461
+ (cache)))
462
+
463
+
464
+
465
+ ;;;; Not maintained sources
466
+
467
+ ;; ropemacs
468
+
469
+ (defvar ac-ropemacs-loaded nil)
470
+ (defun ac-ropemacs-require ()
471
+ (with-no-warnings
472
+ (unless ac-ropemacs-loaded
473
+ (pymacs-load "ropemacs" "rope-")
474
+ (if (boundp 'ropemacs-enable-autoimport)
475
+ (setq ropemacs-enable-autoimport t))
476
+ (setq ac-ropemacs-loaded t))))
477
+
478
+ (defun ac-ropemacs-setup ()
479
+ (ac-ropemacs-require)
480
+ ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources))
481
+ (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs))))
482
+
483
+ (defun ac-ropemacs-initialize ()
484
+ (autoload 'pymacs-apply "pymacs")
485
+ (autoload 'pymacs-call "pymacs")
486
+ (autoload 'pymacs-eval "pymacs" nil t)
487
+ (autoload 'pymacs-exec "pymacs" nil t)
488
+ (autoload 'pymacs-load "pymacs" nil t)
489
+ (add-hook 'python-mode-hook 'ac-ropemacs-setup)
490
+ t)
491
+
492
+ (defvar ac-ropemacs-completions-cache nil)
493
+ (defvar ac-source-ropemacs
494
+ '((init
495
+ . (lambda ()
496
+ (setq ac-ropemacs-completions-cache
497
+ (mapcar
498
+ (lambda (completion)
499
+ (concat ac-prefix completion))
500
+ (ignore-errors
501
+ (rope-completions))))))
502
+ (candidates . ac-ropemacs-completions-cache)))
503
+
504
+ ;; rcodetools
505
+
506
+ (defvar ac-source-rcodetools
507
+ '((init . (lambda ()
508
+ (require 'rcodetools)
509
+ (condition-case x
510
+ (save-excursion
511
+ (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles"))
512
+ (error) (setq rct-method-completion-table nil))))
513
+ (candidates . (lambda ()
514
+ (all-completions
515
+ ac-prefix
516
+ (mapcar
517
+ (lambda (completion)
518
+ (replace-regexp-in-string "\t.*$" "" (car completion)))
519
+ rct-method-completion-table))))))
520
+
521
+
522
+
523
+ ;;;; Default settings
524
+
525
+ (defun ac-common-setup ()
526
+ ;(add-to-list 'ac-sources 'ac-source-filename)
527
+ )
528
+
529
+ (defun ac-emacs-lisp-mode-setup ()
530
+ (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources)))
531
+
532
+ (defun ac-cc-mode-setup ()
533
+ (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources)))
534
+
535
+ (defun ac-ruby-mode-setup ())
536
+
537
+ (defun ac-css-mode-setup ()
538
+ (setq ac-sources (append '(ac-source-css-property) ac-sources)))
539
+
540
+ ;;;###autoload
541
+ (defun ac-config-default ()
542
+ (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
543
+ (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
544
+ (add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
545
+ (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
546
+ (add-hook 'css-mode-hook 'ac-css-mode-setup)
547
+ (add-hook 'auto-complete-mode-hook 'ac-common-setup)
548
+ (global-auto-complete-mode t))
549
+
550
+ (provide 'auto-complete-config)
551
+ ;;; auto-complete-config.el ends here
@@ -0,0 +1,6 @@
1
+ (define-package "auto-complete" "20170124.1845" "Auto Completion for GNU Emacs"
2
+ '((popup "0.5.0")
3
+ (cl-lib "0.5")))
4
+ ;; Local Variables:
5
+ ;; no-byte-compile: t
6
+ ;; End: