ruby_learner 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/docs/thesis/competing_services.org +21 -0
  4. data/docs/thesis/manual.org +55 -0
  5. data/docs/thesis/mid_term.pptx +0 -0
  6. data/lib/ruby_learner/common.rb +45 -0
  7. data/lib/ruby_learner/ruby_learner.rb +9 -17
  8. data/lib/ruby_learner/sequential_main.rb +146 -0
  9. data/lib/ruby_learner/typing_practice.rb +82 -10
  10. data/lib/ruby_learner/version.rb +1 -1
  11. data/workshop/emacs.d/init.el +1 -76
  12. data/workshop/emacs.d/ruby_learner_init.el +0 -76
  13. metadata +7 -83
  14. data/lib/ruby_learner/methods.rb +0 -290
  15. data/workshop/emacs.d/#init# +0 -1
  16. data/workshop/emacs.d/ac-comphist.dat +0 -50
  17. data/workshop/emacs.d/cp5022x.el +0 -156
  18. data/workshop/emacs.d/elpa/archives/gnu/archive-contents +0 -1240
  19. data/workshop/emacs.d/elpa/archives/melpa/archive-contents +0 -2
  20. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-autoloads.el +0 -65
  21. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.el +0 -551
  22. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.elc +0 -0
  23. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-pkg.el +0 -6
  24. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.el +0 -2164
  25. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.elc +0 -0
  26. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ada-mode +0 -72
  27. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c++-mode +0 -99
  28. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c-mode +0 -55
  29. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/caml-mode +0 -231
  30. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojure-mode +0 -580
  31. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojurescript-mode +0 -475
  32. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/coq-mode +0 -278
  33. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/css-mode +0 -874
  34. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/erlang-mode +0 -216
  35. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ess-julia-mode +0 -37
  36. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/go-mode +0 -25
  37. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/haskell-mode +0 -679
  38. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/java-mode +0 -53
  39. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/js-mode +0 -148
  40. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/julia-mode +0 -37
  41. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/lua-mode +0 -21
  42. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/nim-mode +0 -70
  43. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/objc-mode +0 -161
  44. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/octave-mode +0 -46
  45. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/php-mode +0 -6144
  46. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/python-mode +0 -379
  47. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/qml-mode +0 -183
  48. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ruby-mode +0 -181
  49. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scala-mode +0 -1347
  50. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scheme-mode +0 -216
  51. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sclang-mode +0 -1481
  52. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sh-mode +0 -182
  53. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/swift-mode +0 -87
  54. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tcl-mode +0 -172
  55. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ts-mode +0 -797
  56. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tuareg-mode +0 -231
  57. data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/verilog-mode +0 -313
  58. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-autoloads.el +0 -16
  59. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-pkg.el +0 -2
  60. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.el +0 -90
  61. data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.elc +0 -0
  62. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-autoloads.el +0 -26
  63. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-pkg.el +0 -2
  64. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.el +0 -877
  65. data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.elc +0 -0
  66. data/workshop/emacs.d/elpa/haml-mode-readme.txt +0 -8
  67. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.el +0 -918
  68. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.elc +0 -0
  69. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-autoloads.el +0 -32
  70. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-pkg.el +0 -8
  71. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.el +0 -912
  72. data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.elc +0 -0
  73. data/workshop/emacs.d/elpa/ox-bibtex-chinese-readme.txt +0 -21
  74. data/workshop/emacs.d/elpa/popup-20160709.729/popup-autoloads.el +0 -15
  75. data/workshop/emacs.d/elpa/popup-20160709.729/popup-pkg.el +0 -2
  76. data/workshop/emacs.d/elpa/popup-20160709.729/popup.el +0 -1432
  77. data/workshop/emacs.d/elpa/popup-20160709.729/popup.elc +0 -0
  78. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-autoloads.el +0 -33
  79. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-pkg.el +0 -2
  80. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.el +0 -470
  81. data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.elc +0 -0
  82. data/workshop/emacs.d/elpa/yaml-mode-readme.txt +0 -25
  83. data/workshop/emacs.d/haml-mode-master/.gitignore +0 -1
  84. data/workshop/emacs.d/haml-mode-master/.mailmap +0 -2
  85. data/workshop/emacs.d/haml-mode-master/MIT-LICENSE +0 -20
  86. data/workshop/emacs.d/haml-mode-master/README.md +0 -47
  87. data/workshop/emacs.d/haml-mode-master/haml-mode.el +0 -887
  88. data/workshop/emacs.d/iceberg_theme.el +0 -202
  89. data/workshop/emacs.d/init-open-recentf.el +0 -133
  90. data/workshop/emacs.d/install-elisp.el +0 -366
  91. data/workshop/emacs.d/notes +0 -12
  92. data/workshop/emacs.d/processing-mode/processing-mode.el +0 -275
  93. data/workshop/emacs.d/recentf +0 -31
  94. data/workshop/emacs.d/wiki-mode/wiki.el +0 -976
@@ -1,202 +0,0 @@
1
- ;;; iceberg --- a dark blue theme
2
- ;;; Commentary:
3
- ;; _________________________________________
4
- ;; \_ _/ ____| ____| ___ \ ____| ___ \ ___/
5
- ;; | | |____| ____| ___ < ____| __ / |__ \
6
- ;; /___\_____|_____|_____/_____|_| \_\_____/
7
- ;;
8
- ;; cool-headed perspective for your coding
9
- ;;
10
- ;;
11
- ;; File: iceberg.el
12
- ;; Colorscheme: cocopon <cocopon@me.com>
13
- ;; Port: apnsngr <github.com/apnsngr>
14
- ;; License: MIT
15
- ;;
16
- ;; Special thanks to Bozhidar Batsov (bbatsov). I used his zenburn Emacs theme
17
- ;; as a guide for this theme.
18
-
19
- ;;; Code:
20
-
21
- (deftheme iceberg)
22
-
23
- (let
24
- ((class '((class color) (min-colors 89)))
25
- (background "#161822")
26
- (current-line "#1E2132")
27
- (selection "#282D43")
28
- (foreground "#C7C9D1")
29
- (comment "#6B7089")
30
- (cursor "#C7C9D1")
31
- (line-number-fg "#454D73")
32
- (red "#E27878")
33
- (orange "#E2A478")
34
- (green "#B4BE82")
35
- (cyan "#89B8C2")
36
- (blue "#84A0C6")
37
- (purple "#A093C7")
38
- (black "#0E0F14"))
39
-
40
- (custom-theme-set-faces
41
- 'iceberg
42
-
43
- ;; Built-in
44
- `(default ((t (:background ,background :foreground ,foreground))))
45
- `(fringe ((t (:background ,current-line))))
46
- `(minibuffer-prompt ((t (:foreground ,blue))))
47
- `(menu ((t (:foreground ,foreground :background ,background))))
48
- `(mode-line
49
- ((t (:background ,current-line
50
- :foreground ,foreground
51
- :box (:line-width -1 :style released-button)))))
52
- `(mode-line-inactive
53
- ((t (:background ,current-line :foreground ,foreground))))
54
- `(mode-line-buffer-id ((t (:foreground ,cyan :weight bold))))
55
- `(region ((t (:background ,selection))))
56
- `(highlight ((t (:background ,selection))))
57
- `(success ((t (:foreground ,green :weight bold))))
58
- `(warning ((t (:foreground ,red :weight bold))))
59
-
60
- ;; Font-lock
61
- `(font-lock-builtin-face ((t (:foreground ,foreground :weight bold))))
62
- `(font-lock-comment-face ((t (:foreground ,comment))))
63
- `(font-lock-comment-delimiter-face ((t :foreground ,comment)))
64
- `(font-lock-constant-face ((t (:foreground ,purple))))
65
- `(font-lock-doc-face ((t (:foreground ,comment))))
66
- `(font-lock-doc-string-face ((t (:foreground ,comment))))
67
- `(font-lock-function-name-face ((t (:foreground ,orange))))
68
- `(font-lock-keyword-face ((t (:foreground ,blue))))
69
- `(font-lock-preprocessor-face ((t (:foreground ,green))))
70
- `(font-lock-string-face ((t (:foreground ,cyan))))
71
- `(font-lock-type-face ((t (:foreground ,cyan))))
72
- `(font-lock-variable-name-face ((t (:foreground ,purple))))
73
- `(font-lock-warning-face ((t (:foreground ,red))))
74
-
75
- ;; Everything else (ordered by alphabetically)
76
-
77
- ;; diff
78
- `(diff-added ((,class (:foreground ,green :background nil))
79
- (t (:foreground ,green :background nil))))
80
- `(diff-changed ((t (:foreground ,orange))))
81
- `(diff-removed ((,class (:foreground ,red :background nil))
82
- (t (:foreground ,red :background nil))))
83
- `(diff-refine-added ((t (:inherit diff-added :weight bold))))
84
- `(diff-refine-change ((t (:inherit diff-changed :weight bold))))
85
- `(diff-refine-removed ((t (:inherit diff-removed :weight bold))))
86
- `(diff-header ((,class (:background ,current-line))
87
- (t (:background ,foreground :foreground ,background))))
88
- `(diff-file-header
89
- ((,class (:background ,current-line :foreground ,foreground :bold t))
90
- (t (:background ,foreground :foreground ,background :bold t))))
91
-
92
- ;; diff-hl
93
- `(diff-hl-change ((,class (:foreground ,orange :background ,current-line))))
94
- `(diff-hl-delete ((,class (:foreground ,red :background ,current-line))))
95
- `(diff-hl-insert ((,class (:foreground ,green :background ,current-line))))
96
- `(diff-hl-unknown ((,class (:foreground ,cyan :background ,current-line))))
97
-
98
- ;; flycheck
99
- `(flycheck-error
100
- ((((supports :underline (:style wave)))
101
- (:underline (:style wave :color ,red) :inherit unspecified))
102
- (t (:foreground ,red :weight bold :underline t))))
103
- `(flycheck-warning
104
- ((((supports :underline (:style wave)))
105
- (:underline (:style wave :color ,orange) :inherit unspecified))
106
- (t (:foreground ,orange :weight bold :underline t))))
107
- `(flycheck-info
108
- ((((supports :underline (:style wave)))
109
- (:underline (:style wave :color ,blue) :inherit unspecified))
110
- (t (:foreground ,blue :weight bold :underline t))))
111
- `(flycheck-fringe-error ((t (:foreground ,red :weight bold))))
112
- `(flycheck-fringe-warning ((t (:foreground ,orange :weight bold))))
113
- `(flycheck-fringe-info ((t (:foreground ,blue :weight bold))))
114
-
115
- ;; hl-line-mode
116
- `(hl-line ((t (:background ,current-line))))
117
-
118
- ;; ido-mode
119
- `(do-first-match ((t (:foreground ,blue :weight bold))))
120
- `(ido-only-match ((t (:foreground ,green :weight bold))))
121
- `(ido-subdir ((t (:foreground ,cyan))))
122
-
123
- ;; isearch
124
- `(isearch ((t (:foreground ,foreground :weight bold
125
- :background ,selection))))
126
- `(isearch-fail ((t (:foreground ,foreground :background ,red))))
127
- `(lazy-highlight ((t (:foreground ,foreground :weight bold
128
- :background ,current-line))))
129
-
130
- ;; linum-mode
131
- `(linum ((t (:foreground ,line-number-fg :background ,current-line))))
132
-
133
- ;; org-mode
134
- `(org-agenda-date-today
135
- ((t (:foreground ,foreground :slant italic :weight bold))) t)
136
- `(org-agenda-structure
137
- ((t (:inherit font-lock-comment-face))))
138
- `(org-archived ((t (:foreground ,foreground :weight bold))))
139
- `(org-checkbox ((t (:background ,background :foreground ,foreground
140
- :box (:line-width 1 :style released-button)))))
141
- `(org-date ((t (:foreground ,purple))))
142
- `(org-deadline-announce ((t (:foreground ,red))))
143
- `(org-done ((t (:foreground ,green))))
144
- `(org-formula ((t (:foreground ,orange))))
145
- `(org-headline-done ((t (:foreground ,green))))
146
- `(org-hide ((t (:foreground ,comment))))
147
- `(org-level-1 ((t (:foreground ,blue))))
148
- `(org-level-2 ((t (:foreground ,purple))))
149
- `(org-level-3 ((t (:foreground ,cyan))))
150
- `(org-level-4 ((t (:foreground ,green))))
151
- `(org-level-5 ((t (:foreground ,red))))
152
- `(org-level-6 ((t (:foreground ,orange))))
153
- `(org-level-7 ((t (:foreground ,comment))))
154
- `(org-level-8 ((t (:foreground ,foreground))))
155
- `(org-link ((t (:foreground ,cyan))))
156
- `(org-scheduled ((t (:foreground ,green))))
157
- `(org-scheduled-previously ((t (:foreground ,red))))
158
- `(org-scheduled-today ((t (:foreground ,blue))))
159
- `(org-sexp-date ((t (:foreground ,blue :underline t))))
160
- `(org-special-keyword ((t (:inherit font-lock-comment-face))))
161
- `(org-table ((t (:foreground ,blue))))
162
- `(org-tag ((t (:bold t :weight bold))))
163
- `(org-time-grid ((t (:foreground ,blue))))
164
- `(org-todo ((t (:bold t :foreground ,cyan :weight bold))))
165
- `(org-upcoming-deadline ((t (:inherit font-lock-keyword-face))))
166
- `(org-warning ((t (:bold t :foreground ,orange :weight bold :underline nil))))
167
- `(org-column ((t (:background ,current-line))))
168
- `(org-column-title ((t (:background ,background :underline t :weight bold))))
169
- `(org-mode-line-clock-overrun ((t (:foreground ,background :background ,red))))
170
- `(org-footnote ((t (:foreground ,cyan :underline t))))
171
-
172
- ;; rainbow-delimiters
173
- `(rainbow-delimiters-depth-1-face ((t (:foreground ,purple))))
174
- `(rainbow-delimiters-depth-2-face ((t (:foreground ,blue))))
175
- `(rainbow-delimiters-depth-3-face ((t (:foreground ,cyan))))
176
- `(rainbow-delimiters-depth-4-face ((t (:foreground ,green))))
177
- `(rainbow-delimiters-depth-5-face ((t (:foreground ,orange))))
178
- `(rainbow-delimiters-depth-6-face ((t (:foreground ,red))))
179
- `(rainbow-delimiters-depth-7-face ((t (:foreground ,comment))))
180
- `(rainbow-delimiters-depth-8-face ((t (:foreground ,line-number-fg))))
181
- `(rainbow-delimiters-depth-9-face ((t (:foreground ,foreground))))
182
-
183
- ;; show-paren-mode
184
- `(show-paren-match ((t (:background ,blue :foreground ,current-line))))
185
- `(show-paren-mismatch ((t (:background ,orange :foreground ,current-line))))
186
-
187
- )
188
-
189
- (custom-theme-set-variables
190
- 'iceberg
191
- ;; TODO ANSI colors
192
- ))
193
-
194
- ;;;###autoload
195
- (and load-file-name
196
- (boundp 'custom-theme-load-path)
197
- (add-to-list 'custom-theme-load-path
198
- (file-name-as-directory
199
- (file-name-directory load-file-name))))
200
-
201
- (provide-theme 'iceberg)
202
- ;;; iceberg-theme.el ends here
@@ -1,133 +0,0 @@
1
- ;;; init-open-recentf.el --- Open recentf immediately after Emacs is started -*- coding: utf-8 ; lexical-binding: t -*-
2
-
3
- ;; Copyright (C) 2015 USAMI Kenta
4
-
5
- ;; Author: USAMI Kenta <tadsan@zonu.me>
6
- ;; Created: 26 Oct 2015
7
- ;; Version: 0.0.1
8
- ;; Homepage: https://github.com/zonuexe/init-open-recentf.el
9
- ;; Keywords: files recentf after-init-hook
10
- ;; Package-Requires: ((emacs "24.4"))
11
-
12
- ;; This file is NOT part of GNU Emacs.
13
-
14
- ;; This program is free software; you can redistribute it and/or modify
15
- ;; it under the terms of the GNU General Public License as published by
16
- ;; the Free Software Foundation, either version 3 of the License, or
17
- ;; (at your option) any later version.
18
-
19
- ;; This program is distributed in the hope that it will be useful,
20
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
21
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
- ;; GNU General Public License for more details.
23
-
24
- ;; You should have received a copy of the GNU General Public License
25
- ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
26
-
27
- ;;; Commentary:
28
- ;;
29
- ;; Open recentf immediately after Emacs is started.
30
- ;; Here are some example scenarios for when Emacs is started from the command line:
31
- ;; - If files are opened (e.g. '$ emacs file1.txt'), nothing out of the ordinary occurs-- the file is opened.
32
- ;; - However if a file is not indicated (e.g. '$ emacs '), recentf will be opened after emacs is initialized.
33
- ;; This script uses only the inbuilt advice function for startup. It does not require or use any interactive function.
34
- ;; (This approach is a dirty hack, but an alternative hook to accomplish the same thing does not exist.)
35
- ;;
36
- ;; Put the following into your .emacs file (~/.emacs.d/init.el)
37
- ;;
38
- ;; (init-open-recentf)
39
- ;;
40
- ;; `init-open-recentf' supports the following frameworks: helm, ido, anything (and the default Emacs setup without those frameworks).
41
- ;; The package determines the frameworks from your environment, but you can also indicate it explicitly.
42
- ;;
43
- ;; (setq init-open-recentf-interface 'ido)
44
- ;; (init-open-recentf)
45
- ;;
46
- ;; Another possible configuration is demonstrated below if you want to specify an arbitrary function.
47
- ;;
48
- ;; (setq init-open-recentf-function #'awesome-open-recentf)
49
- ;; (init-open-recentf)
50
- ;;
51
-
52
- ;;; Code:
53
- (require 'cl-lib)
54
- (require 'recentf)
55
-
56
- (defgroup init-open-recentf nil
57
- "init-open-recentf"
58
- :group 'initialization)
59
-
60
- (defcustom init-open-recentf-function
61
- nil
62
- "Function to open recentf files (or other)."
63
- :type '(function :tag "Invoke recentf (or other) function")
64
- :group 'init-open-recentf)
65
-
66
- (defcustom init-open-recentf-interface
67
- nil
68
- "Interface to open recentf files."
69
- :type '(radio (const :tag "Use ido interface" 'ido)
70
- (const :tag "Use helm interface" 'helm)
71
- (const :tag "Use anything interface" 'anything)
72
- (const :tag "Use Ivy/counsel interface" 'counsel)
73
- (const :tag "Use Emacs default (recentf-open-files)" 'default)
74
- (const :tag "Select automatically" 'nil))
75
- :group 'init-open-recentf)
76
-
77
- (defvar init-open-recentf-before-hook nil
78
- "Run hooks before `init-open-recentf-open'.")
79
-
80
- (defvar init-open-recentf-after-hook nil
81
- "Run hooks after `init-open-recentf-open'.")
82
-
83
- (defun init-open-recentf-buffer-files ()
84
- "Return list of opened file names."
85
- (let ((found-files '()))
86
- (dolist (buffer (buffer-list))
87
- (with-current-buffer buffer
88
- (when buffer-file-name
89
- (cl-pushnew buffer-file-name found-files))))
90
- found-files))
91
-
92
- (defun init-open-recentf-interface ()
93
- ""
94
- (or init-open-recentf-interface
95
- (cond
96
- ((and (boundp 'helm-mode) helm-mode) 'helm)
97
- ((and (boundp 'ido-mode) ido-mode) 'ido)
98
- ((and (boundp 'counsel-mode) counsel-mode) 'counsel)
99
- ((fboundp 'anything-recentf) 'anything)
100
- (:else 'default))))
101
-
102
- (defun init-open-recentf-dwim ()
103
- "Open recent file command you want (Do What I Mean)."
104
- (if init-open-recentf-function
105
- (call-interactively init-open-recentf-function)
106
- (cl-case (init-open-recentf-interface)
107
- ((helm) (helm-recentf))
108
- ((ido) (find-file (ido-completing-read "Find recent file: " recentf-list)))
109
- ((counsel) (counsel-recentf))
110
- ((anything) (anything-recentf))
111
- ((default) (recentf-open-files)))))
112
-
113
- (defun init-open-recentf-open (&rest dummy-args)
114
- "If files are opened, does nothing. Open recentf otherwise.
115
- `DUMMY-ARGS' is ignored."
116
- (prog2
117
- (run-hooks 'init-open-recentf-before-hook)
118
- (cond
119
- ((init-open-recentf-buffer-files) t)
120
- ((recentf-enabled-p) (init-open-recentf-dwim))
121
- (:else
122
- (error "`recentf-mode' is not enabled")))
123
- (run-hooks 'init-open-recentf-after-hook)
124
- (advice-remove 'display-startup-screen #'init-open-recentf-open)))
125
-
126
- ;;;###autoload
127
- (defun init-open-recentf ()
128
- "Set 'after-init-hook ."
129
- (advice-add 'command-line-1 :after #'init-open-recentf-open)
130
- t)
131
-
132
- (provide 'init-open-recentf)
133
- ;;; init-open-recentf.el ends here
@@ -1,366 +0,0 @@
1
- ;;; install-elisp.el --- Simple Emacs Lisp installer
2
- ;; $Id: install-elisp.el,v 1.18 2009/01/25 17:47:20 rubikitch Exp $
3
-
4
- ;; Copyright (C) 2007 rubikitch
5
-
6
- ;; Author: rubikitch <rubikitch@ruby-lang.org>
7
- ;; Keywords: lisp, convenience, maint
8
- ;; URL: http://www.emacswiki.org/cgi-bin/wiki/download/install-elisp.el
9
-
10
- ;; This file is free software; you can redistribute it and/or modify
11
- ;; it under the terms of the GNU General Public License as published by
12
- ;; the Free Software Foundation; either version 2, or (at your option)
13
- ;; any later version.
14
-
15
- ;; This file is distributed in the hope that it will be useful,
16
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- ;; GNU General Public License for more details.
19
-
20
- ;; You should have received a copy of the GNU General Public License
21
- ;; along with GNU Emacs; see the file COPYING. If not, write to
22
- ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23
- ;; Boston, MA 02110-1301, USA.
24
-
25
- ;;; Commentary:
26
-
27
- ;; Automate Emacs Lisp installation.
28
- ;; (1) download Emacs Lisp
29
- ;; (!) confirm installation
30
- ;; (2) save to your repository
31
- ;; (3) byte compile
32
- ;; (4) load
33
- ;; (5) show Emacs Lisp
34
-
35
- ;;; Commands:
36
- ;;
37
- ;; Below are complete command list:
38
- ;;
39
- ;; `install-elisp'
40
- ;; Retrieve Emacs Lisp program from URL and save and byte-compile and load.
41
- ;; `install-elisp-from-emacswiki'
42
- ;; Install Emacs Lisp program from the EmacsWiki.
43
- ;; `install-elisp-from-gist'
44
- ;; Install Emacs Lisp program from gist.
45
- ;; `dired-install-elisp-from-emacswiki'
46
- ;; Upgrade the current Emacs Lisp program from the EmacsWiki.
47
- ;; `install-elisp-confirmation-minor-mode'
48
- ;; Emacs Lisp install confirmation.
49
- ;;
50
- ;;; Customizable Options:
51
- ;;
52
- ;; Below are customizable option list:
53
- ;;
54
- ;; `install-elisp-repository-directory'
55
- ;; Directory to save Emacs Lisp programs downloaded by install-elisp.el.
56
- ;; default = "~/.emacs.d/"
57
- ;; `install-elisp-use-view-mode'
58
- ;; If non-nil, turn on `view-mode' for installed Emacs Lisp program.
59
- ;; default = t
60
- ;; `install-elisp-use-url-retrieve'
61
- ;; If nil, use external command-line HTTP client instead.
62
- ;; default = (fboundp (quote url-retrieve-synchronously))
63
- ;; `install-elisp-confirm-flag'
64
- ;; If non-nil, do install confirmation.
65
- ;; default = t
66
- ;; `install-elisp-retrieval-program'
67
- ;; URL retrieving program used when `install-elisp-use-url-retrieve' is nil.
68
- ;; default = "wget -q -O- '%s'"
69
-
70
- ;;; Installation:
71
-
72
- ;; If you use Emacs21 and under, you must have wget or other
73
- ;; command-line HTTP client.
74
-
75
- ;; You need to add to .emacs:
76
- ;; (require 'install-elisp)
77
- ;; (setq install-elisp-repository-directory "~/.emacs.d/")
78
-
79
- ;;; Usage:
80
-
81
- ;; M-x install-elisp
82
- ;; M-x install-elisp-from-emacswiki
83
- ;; M-x install-elisp-from-gist
84
- ;; M-x dired-install-elisp-from-emacswiki
85
- ;;
86
- ;; It is convenient to add to your Emacs Lisp programs:
87
- ;; (install-elisp "http://your.site/hogehoge.el")
88
- ;; because users have only to evaluate this sexp by C-x C-e.
89
-
90
- ;; If you want to complete EmacsWiki pagename, eval:
91
- ;; (install-elisp "http://www.emacswiki.org/cgi-bin/wiki/download/oddmuse.el")
92
- ;; It is very convenient to access EmacsWiki with oddmuse.el.
93
-
94
- ;;; Upgrade this program:
95
-
96
- ;; Simply eval:
97
- ;; (install-elisp-from-emacswiki "install-elisp.el")
98
-
99
- ;;; Related project:
100
-
101
- ;; Emacs Lisp Package Archive: http://tromey.com/elpa/
102
- ;; auto-install.el is successor of this:
103
- ;; http://www.emacswiki.org/cgi-bin/wiki/download/auto-install.el
104
-
105
- ;;; Bug Report:
106
- ;;
107
- ;; If you have problem, send a bug report via M-x install-elisp-send-bug-report.
108
- ;; The step is:
109
- ;; 0) Setup mail in Emacs, the easiest way is:
110
- ;; (setq user-mail-address "your@mail.address")
111
- ;; (setq user-full-name "Your Full Name")
112
- ;; (setq smtpmail-smtp-server "your.smtp.server.jp")
113
- ;; (setq mail-user-agent 'message-user-agent)
114
- ;; (setq message-send-mail-function 'message-smtpmail-send-it)
115
- ;; 1) Be sure to use the LATEST version of install-elisp.el.
116
- ;; 2) Enable debugger. M-x toggle-debug-on-error or (setq debug-on-error t)
117
- ;; 3) Use Lisp version instead of compiled one: (load "install-elisp.el")
118
- ;; 4) Do it!
119
- ;; 5) If you got an error, please do not close *Backtrace* buffer.
120
- ;; 6) M-x install-elisp-send-bug-report and M-x insert-buffer *Backtrace*
121
- ;; 7) Describe the bug using a precise recipe.
122
- ;; 8) Type C-c C-c to send.
123
- ;; # If you are a Japanese, please write in Japanese:-)
124
-
125
- ;;; History:
126
-
127
- ;; $Log: install-elisp.el,v $
128
- ;; Revision 1.18 2009/01/25 17:47:20 rubikitch
129
- ;; New command: `install-elisp-from-gist'
130
- ;;
131
- ;; Revision 1.17 2009/01/24 18:54:54 rubikitch
132
- ;; Fixed unbound `find-function-source-path'.
133
- ;;
134
- ;; Revision 1.16 2009/01/21 10:19:57 rubikitch
135
- ;; Restore `mode-line-format' when installation is done.
136
- ;;
137
- ;; Revision 1.15 2008/12/27 10:56:25 rubikitch
138
- ;; Use font-lock.
139
- ;;
140
- ;; Revision 1.14 2008/12/27 10:45:11 rubikitch
141
- ;; Make install-elisp find the package's directory,
142
- ;; if found use package's directory, otherwise use `install-elisp-repository-directory'.
143
- ;; patched by Andy Stewart (with slightly modified), thanks.
144
- ;;
145
- ;; Revision 1.13 2008/12/27 09:14:42 rubikitch
146
- ;; "Get elisp from..." message
147
- ;;
148
- ;; Revision 1.12 2007/07/25 20:38:08 rubikitch
149
- ;; use defgroup.
150
- ;; install-elisp-retrieval-program: "wget -q -O- '%s'" by default.
151
- ;;
152
- ;; Revision 1.11 2007/07/25 19:43:22 rubikitch
153
- ;; New variable: install-elisp-retrieval-program
154
- ;;
155
- ;; use `defcustom'.
156
- ;;
157
- ;; Revision 1.10 2007/07/25 19:27:43 rubikitch
158
- ;; update Commentary and Usage
159
- ;;
160
- ;; Revision 1.9 2007/07/25 19:20:08 rubikitch
161
- ;; install-elisp-confirmation-minor-mode: pretty mode-line-format
162
- ;;
163
- ;; Revision 1.8 2007/07/25 19:11:50 rubikitch
164
- ;; EmacsWiki HTTP workaround
165
- ;;
166
- ;; Revision 1.7 2007/07/25 19:02:57 rubikitch
167
- ;; Install confirmation for security.
168
- ;;
169
- ;; Revision 1.6 2007/07/25 17:58:39 rubikitch
170
- ;; New command: dired-install-elisp-from-emacswiki
171
- ;;
172
- ;; Revision 1.5 2007/07/25 17:50:30 rubikitch
173
- ;; `install-elisp-repository-directory': "~/.emacs.d/" by default.
174
- ;;
175
- ;; Revision 1.4 2007/07/25 17:47:21 rubikitch
176
- ;; rename function: %install-elisp-from -> install-elisp-from
177
- ;;
178
- ;; Revision 1.3 2007/07/25 17:46:13 rubikitch
179
- ;; use `url-retrieve-synchronously' if available
180
- ;;
181
- ;; Revision 1.2 2007/07/24 10:44:31 rubikitch
182
- ;; Fixed a serious bug.
183
- ;; New variable: install-elisp-use-view-mode
184
- ;;
185
- ;; Revision 1.1 2007/07/24 10:39:40 rubikitch
186
- ;; Initial revision
187
- ;;
188
-
189
- ;;; Code:
190
-
191
- (require 'find-func)
192
-
193
- (defgroup install-elisp nil
194
- "Simple Emacs Lisp installer."
195
- :group 'hypermedia)
196
-
197
- (defcustom install-elisp-repository-directory "~/.emacs.d/"
198
- "Directory to save Emacs Lisp programs downloaded by install-elisp.el. "
199
- :group 'install-elisp)
200
-
201
- (defcustom install-elisp-use-view-mode t
202
- "If non-nil, turn on `view-mode' for installed Emacs Lisp program."
203
- :group 'install-elisp)
204
-
205
- (defcustom install-elisp-use-url-retrieve (fboundp 'url-retrieve-synchronously)
206
- "If nil, use external command-line HTTP client instead.
207
- See also `install-elisp-retrieval-program'."
208
- :group 'install-elisp)
209
-
210
- (defcustom install-elisp-confirm-flag t
211
- "If non-nil, do install confirmation.
212
- You should set it non-nil for security reason."
213
- :group 'install-elisp)
214
-
215
- (defcustom install-elisp-retrieval-program "wget -q -O- '%s'"
216
- "URL retrieving program used when `install-elisp-use-url-retrieve' is nil.
217
- If you use curl, set it to \"curl --silent '%s'\"."
218
- :group 'install-elisp)
219
-
220
- (defvar install-elisp-filename nil)
221
- (make-variable-buffer-local 'install-elisp-filename)
222
-
223
- (defvar install-elisp-confirmation-minor-mode-map (make-sparse-keymap))
224
-
225
- (defun %install-elisp-create-buffer (url)
226
- (message "Get elisp from %s" url)
227
- (cond (install-elisp-use-url-retrieve
228
- (switch-to-buffer (url-retrieve-synchronously url))
229
- (goto-char (point-min))
230
- (re-search-forward "^$" nil 'move)
231
- (delete-region (point-min) (1+ (point)))
232
- (%install-elisp-emacswiki-http-workaround))
233
- (t
234
- (let ((buffer (generate-new-buffer " *install-elisp-tmp*")))
235
- (shell-command (format install-elisp-retrieval-program url) buffer)
236
- (switch-to-buffer buffer))))
237
- (emacs-lisp-mode)
238
- (setq font-lock-mode t)
239
- (font-lock-fontify-buffer))
240
-
241
- ;; I do not know why!!
242
- (defun %install-elisp-emacswiki-http-workaround ()
243
- (save-excursion
244
- (let (buffer-read-only)
245
- (goto-char (1- (point-max)))
246
- (when (eq (char-before) ?\C-m)
247
- (delete-backward-char 2)))))
248
-
249
- (defun install-elisp-proceed ()
250
- (interactive)
251
- (write-file install-elisp-filename)
252
- (byte-compile-file buffer-file-name t)
253
- (install-elisp-confirmation-minor-mode -1))
254
-
255
- ;;;###autoload
256
- (defun install-elisp (url &optional filename)
257
- "Retrieve Emacs Lisp program from URL and save and byte-compile and load.
258
- If optional FILENAME is supplied, save URL as FILENAME, otherwise URL's basename."
259
- (interactive "sInstall Emacs Lisp from URL: ")
260
- (if (null install-elisp-repository-directory)
261
- (with-output-to-temp-buffer "*Help*"
262
- (princ "You must prepare to use install-elisp program!
263
- Set `install-elisp-repository-directory' to your local Emacs Lisp repository directory in your ~/.emacs.
264
-
265
- For example: (setq install-elisp-repository-directory \"~/emacs/lisp/\")"))
266
- (%install-elisp-create-buffer url)
267
- (and install-elisp-use-view-mode (view-mode 1))
268
- (setq install-elisp-filename
269
- (%install-elisp-get-filename (or filename (file-name-nondirectory url))))
270
- (if (not install-elisp-confirm-flag)
271
- (install-elisp-proceed)
272
- (install-elisp-confirmation-minor-mode 1)
273
- (message "Type C-c C-c to do installation!"))))
274
-
275
- ;; (%install-elisp-find-library-name "vc.el")
276
- ;; (%install-elisp-find-library-name "vc.elc")
277
- (defun %install-elisp-find-library-name (library)
278
- "Return the absolute file name of the Lisp source of LIBRARY."
279
- ;; If the library is byte-compiled, try to find a source library by
280
- ;; the same name.
281
- (if (string-match "\\.el\\(c\\(\\..*\\)?\\)\\'" library)
282
- (setq library (replace-match "" t t library)))
283
- (locate-file library
284
- (or find-function-source-path load-path)
285
- (append (find-library-suffixes) load-file-rep-suffixes)))
286
-
287
- ;; (%install-elisp-get-filename "vc.el")
288
- ;; (%install-elisp-get-filename "vc.elc")
289
- ;; (%install-elisp-get-filename "icicles.el")
290
- ;; (%install-elisp-get-filename "hoge.el")
291
- (defun %install-elisp-get-filename (filename)
292
- (let ((lib-file (%install-elisp-find-library-name filename)))
293
- (if (and lib-file (file-writable-p lib-file))
294
- ;; use current directory,
295
- ;; if file is not in `install-elisp-repository-directory'.
296
- lib-file
297
- ;; otherwise use `install-elisp-repository-directory'.
298
- (expand-file-name filename install-elisp-repository-directory))))
299
-
300
- (defun install-elisp-from (baseurl)
301
- "Return higher-order function installing from BASEURL, which accepts an argument FILENAME."
302
- `(lambda (filename)
303
- (install-elisp (concat ,baseurl filename) filename)))
304
-
305
- ;;;###autoload
306
- (defun install-elisp-from-emacswiki (filename)
307
- "Install Emacs Lisp program from the EmacsWiki."
308
- (interactive (list (if (fboundp 'oddmuse-read-pagename)
309
- (oddmuse-read-pagename "EmacsWiki")
310
- (read-string "PageName: "))))
311
- (funcall (install-elisp-from "http://www.emacswiki.org/cgi-bin/wiki/download/") filename))
312
-
313
- ;;;###autoload
314
- (defun install-elisp-from-gist (gistid &optional filename)
315
- "Install Emacs Lisp program from gist."
316
- (interactive "sInstall Emacs Lisp from gist ID: ")
317
- (install-elisp (concat "http://gist.github.com/" (format "%s" gistid) ".txt")
318
- (or filename
319
- (format "gist-%s.el" gistid))))
320
-
321
- ;;;###autoload
322
- (defun dired-install-elisp-from-emacswiki (&optional filename)
323
- "Upgrade the current Emacs Lisp program from the EmacsWiki."
324
- (interactive (list (dired-get-filename t)))
325
- (install-elisp-from-emacswiki filename))
326
-
327
- (define-key install-elisp-confirmation-minor-mode-map "\C-c\C-c" 'install-elisp-proceed)
328
-
329
- (define-minor-mode install-elisp-confirmation-minor-mode
330
- "Emacs Lisp install confirmation."
331
- nil "" install-elisp-confirmation-minor-mode-map
332
- (if install-elisp-confirmation-minor-mode
333
- (setq mode-line-format
334
- (format "%s: Type C-c C-c to install!"
335
- (file-name-nondirectory install-elisp-filename)))
336
- (setq mode-line-format default-mode-line-format)))
337
-
338
- ;;;; Bug report
339
- (defvar install-elisp-maintainer-mail-address
340
- (concat "rubiki" "tch@ru" "by-lang.org"))
341
- (defvar install-elisp-bug-report-salutation
342
- "Describe bug below, using a precise recipe.
343
-
344
- When I executed M-x ...
345
-
346
- How to send a bug report:
347
- 1) Be sure to use the LATEST version of install-elisp.el.
348
- 2) Enable debugger. M-x toggle-debug-on-error or (setq debug-on-error t)
349
- 3) Use Lisp version instead of compiled one: (load \"install-elisp.el\")
350
- 4) If you got an error, please paste *Backtrace* buffer.
351
- 5) Type C-c C-c to send.
352
- # If you are a Japanese, please write in Japanese:-)")
353
- (defun install-elisp-send-bug-report ()
354
- (interactive)
355
- (reporter-submit-bug-report
356
- install-elisp-maintainer-mail-address
357
- "install-elisp.el"
358
- (apropos-internal "^install-elisp-" 'boundp)
359
- nil nil
360
- install-elisp-bug-report-salutation))
361
-
362
- (provide 'install-elisp)
363
-
364
- ;; How to save (DO NOT REMOVE!!)
365
- ;; (emacswiki-post "install-elisp.el")
366
- ;;; install-elisp.el ends here