ruby_learner 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +58 -0
- data/LICENSE.txt +21 -0
- data/README.md +65 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/new_terminal +25 -0
- data/bin/setup +8 -0
- data/docs/happy_ruby/RussOlsen_EloquentRuby_c1.pdf +0 -0
- data/docs/happy_ruby/RussOlsen_EloquentRuby_c5.pdf +0 -0
- data/docs/happy_ruby/TanoshiiRuby_v3_c23.pdf +0 -0
- data/docs/happy_ruby/TanoshiiRuby_v5_c1.pdf +0 -0
- data/docs/happy_ruby/TanoshiiRuby_v5_c2-3.pdf +0 -0
- data/docs/happy_ruby/c2.ipynb +479 -0
- data/docs/happy_ruby/c3_4.ipynb +237 -0
- data/docs/seminar/8-1.org +18 -0
- data/exe/ruby_learner +5 -0
- data/lib/ruby_learner/h.rb +14 -0
- data/lib/ruby_learner/methods.rb +131 -0
- data/lib/ruby_learner/random_h.rb +16 -0
- data/lib/ruby_learner/ruby_learner.rb +43 -0
- data/lib/ruby_learner/sequential_h.rb +15 -0
- data/lib/ruby_learner/typing_practice.rb +21 -0
- data/lib/ruby_learner/version.rb +3 -0
- data/questions/random_check/.rspec +1 -0
- data/questions/random_check/random_h.rb +16 -0
- data/questions/random_check/section_1/.rspec +1 -0
- data/questions/random_check/section_1/lib/answer.rb +15 -0
- data/questions/random_check/section_1/lib/sentence.org +9 -0
- data/questions/random_check/section_1/lib/workplace.rb +5 -0
- data/questions/random_check/section_1/spec/spec_helper.rb +100 -0
- data/questions/random_check/section_1/spec/workplace_spec.rb +10 -0
- data/questions/random_check/section_2/.rspec +1 -0
- data/questions/random_check/section_2/lib/answer.rb +17 -0
- data/questions/random_check/section_2/lib/sentence.org +12 -0
- data/questions/random_check/section_2/lib/workplace.rb +5 -0
- data/questions/random_check/section_2/spec/.rspec +1 -0
- data/questions/random_check/section_2/spec/spec_helper.rb +100 -0
- data/questions/random_check/section_2/spec/workplace_spec.rb +11 -0
- data/questions/sequential_check/section_1/part_1/lib/answer.rb +9 -0
- data/questions/sequential_check/section_1/part_1/lib/sentence.org +9 -0
- data/questions/sequential_check/section_1/part_1/lib/workplace.rb +5 -0
- data/questions/sequential_check/section_1/part_1/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_1/part_1/spec/workplace_spec.rb +10 -0
- data/questions/sequential_check/section_1/part_2/lib/answer.rb +16 -0
- data/questions/sequential_check/section_1/part_2/lib/sentence.org +12 -0
- data/questions/sequential_check/section_1/part_2/lib/workplace.rb +5 -0
- data/questions/sequential_check/section_1/part_2/spec/.rspec +1 -0
- data/questions/sequential_check/section_1/part_2/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_1/part_2/spec/workplace_spec.rb +11 -0
- data/ruby_learner.gemspec +41 -0
- data/takahashi/docs/README.org +139 -0
- data/takahashi/docs/drill.html +875 -0
- data/takahashi/docs/drill.html~ +877 -0
- data/takahashi/docs/drill.org +446 -0
- data/takahashi/docs/ruby_for_beginner.html +2642 -0
- data/takahashi/docs/ruby_for_beginner.org +1430 -0
- data/takahashi/sample_prog/answer/10_1.rb +5 -0
- data/takahashi/sample_prog/answer/11_1.rb +5 -0
- data/takahashi/sample_prog/answer/11_2.rb +4 -0
- data/takahashi/sample_prog/answer/1_1.rb +1 -0
- data/takahashi/sample_prog/answer/1_2.rb +1 -0
- data/takahashi/sample_prog/answer/1_3.rb +1 -0
- data/takahashi/sample_prog/answer/2_1.rb +5 -0
- data/takahashi/sample_prog/answer/2_2.rb +12 -0
- data/takahashi/sample_prog/answer/3_1.rb +10 -0
- data/takahashi/sample_prog/answer/4_1.rb +7 -0
- data/takahashi/sample_prog/answer/5_1.rb +6 -0
- data/takahashi/sample_prog/answer/5_2.rb +3 -0
- data/takahashi/sample_prog/answer/6_1.rb +3 -0
- data/takahashi/sample_prog/answer/6_2.rb +5 -0
- data/takahashi/sample_prog/answer/6_3.rb +5 -0
- data/takahashi/sample_prog/answer/6_4.rb +7 -0
- data/takahashi/sample_prog/answer/7_1.rb +3 -0
- data/takahashi/sample_prog/answer/7_2.rb +8 -0
- data/takahashi/sample_prog/answer/9_1.rb +3 -0
- data/takahashi/sample_prog/answer/9_2.rb +5 -0
- data/takahashi/sample_prog/answer/9_3.rb +10 -0
- data/takahashi/sample_prog/answer/hello.rb +3 -0
- data/workshop/.rspec +1 -0
- data/workshop/emacs.d/ac-comphist.dat +50 -0
- data/workshop/emacs.d/cp5022x.el +156 -0
- data/workshop/emacs.d/elpa/archives/gnu/archive-contents +1240 -0
- data/workshop/emacs.d/elpa/archives/melpa/archive-contents +2 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-autoloads.el +65 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.el +551 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-config.elc +0 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete-pkg.el +6 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.el +2164 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/auto-complete.elc +0 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ada-mode +72 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c++-mode +99 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/c-mode +55 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/caml-mode +231 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojure-mode +580 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/clojurescript-mode +475 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/coq-mode +278 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/css-mode +874 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/erlang-mode +216 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ess-julia-mode +37 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/go-mode +25 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/haskell-mode +679 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/java-mode +53 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/js-mode +148 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/julia-mode +37 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/lua-mode +21 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/nim-mode +70 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/objc-mode +161 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/octave-mode +46 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/php-mode +6144 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/python-mode +379 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/qml-mode +183 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ruby-mode +181 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scala-mode +1347 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/scheme-mode +216 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sclang-mode +1481 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/sh-mode +182 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/swift-mode +87 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tcl-mode +172 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/ts-mode +797 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/tuareg-mode +231 -0
- data/workshop/emacs.d/elpa/auto-complete-20170124.1845/dict/verilog-mode +313 -0
- data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-autoloads.el +16 -0
- data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults-pkg.el +2 -0
- data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.el +90 -0
- data/workshop/emacs.d/elpa/better-defaults-20170613.2104/better-defaults.elc +0 -0
- data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-autoloads.el +26 -0
- data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode-pkg.el +2 -0
- data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.el +877 -0
- data/workshop/emacs.d/elpa/haml-mode-20170923.2153/haml-mode.elc +0 -0
- data/workshop/emacs.d/elpa/haml-mode-readme.txt +8 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.el +918 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-light-theme.elc +0 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-autoloads.el +32 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme-pkg.el +8 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.el +912 -0
- data/workshop/emacs.d/elpa/material-theme-20171123.1040/material-theme.elc +0 -0
- data/workshop/emacs.d/elpa/ox-bibtex-chinese-readme.txt +21 -0
- data/workshop/emacs.d/elpa/popup-20160709.729/popup-autoloads.el +15 -0
- data/workshop/emacs.d/elpa/popup-20160709.729/popup-pkg.el +2 -0
- data/workshop/emacs.d/elpa/popup-20160709.729/popup.el +1432 -0
- data/workshop/emacs.d/elpa/popup-20160709.729/popup.elc +0 -0
- data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-autoloads.el +33 -0
- data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode-pkg.el +2 -0
- data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.el +470 -0
- data/workshop/emacs.d/elpa/yaml-mode-20180212.1556/yaml-mode.elc +0 -0
- data/workshop/emacs.d/elpa/yaml-mode-readme.txt +25 -0
- data/workshop/emacs.d/haml-mode-master/.gitignore +1 -0
- data/workshop/emacs.d/haml-mode-master/.mailmap +2 -0
- data/workshop/emacs.d/haml-mode-master/MIT-LICENSE +20 -0
- data/workshop/emacs.d/haml-mode-master/README.md +47 -0
- data/workshop/emacs.d/haml-mode-master/haml-mode.el +887 -0
- data/workshop/emacs.d/iceberg_theme.el +202 -0
- data/workshop/emacs.d/init-open-recentf.el +133 -0
- data/workshop/emacs.d/init.el +229 -0
- data/workshop/emacs.d/inits/line-num.el +264 -0
- data/workshop/emacs.d/install-elisp.el +366 -0
- data/workshop/emacs.d/markdown-mode/markdown-mode.el +5978 -0
- data/workshop/emacs.d/notes +12 -0
- data/workshop/emacs.d/processing-mode/processing-mode.el +275 -0
- data/workshop/emacs.d/recentf +31 -0
- data/workshop/emacs.d/ruby-mode/inf-ruby.el +416 -0
- data/workshop/emacs.d/ruby-mode/rdoc-mode.el +130 -0
- data/workshop/emacs.d/ruby-mode/ruby-electric.el +205 -0
- data/workshop/emacs.d/ruby-mode/ruby-mode.el +1496 -0
- data/workshop/emacs.d/ruby-mode/ruby-style.el +78 -0
- data/workshop/emacs.d/ruby-mode/rubydb2x.el +104 -0
- data/workshop/emacs.d/ruby-mode/rubydb3x.el +115 -0
- data/workshop/emacs.d/ruby_learner_init.el +244 -0
- data/workshop/emacs.d/themes/dracula-theme.el +431 -0
- data/workshop/emacs.d/themes/iceberg-theme.el +205 -0
- data/workshop/emacs.d/themes/my-misterioso-theme.el +109 -0
- data/workshop/emacs.d/themes/my-wombat-theme.el +121 -0
- data/workshop/emacs.d/wiki-mode/wiki.el +976 -0
- data/workshop/emacs_help.org +34 -0
- data/workshop/lib/answer.rb +1 -0
- data/workshop/lib/sentence.org +1 -0
- data/workshop/lib/workplace.rb +1 -0
- data/workshop/restore/empty.rb +0 -0
- data/workshop/spec/spec_helper.rb +100 -0
- data/workshop/spec/workplace_spec.rb +1 -0
- data/workshop/training_data.txt +3 -0
- metadata +343 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
;;; -*- emacs-lisp -*-
|
2
|
+
;;;
|
3
|
+
;;; ruby-style.el -
|
4
|
+
;;;
|
5
|
+
;;; C/C++ mode style for Ruby.
|
6
|
+
;;;
|
7
|
+
;;; $Author: nobu $
|
8
|
+
;;; created at: Thu Apr 26 13:54:01 JST 2007
|
9
|
+
;;;
|
10
|
+
;;; To switch to the "ruby" style automatically if it looks like a
|
11
|
+
;;; source file of ruby, add ruby-style-c-mode to c-mode-hook:
|
12
|
+
;;;
|
13
|
+
;;; (require 'ruby-style)
|
14
|
+
;;; (add-hook 'c-mode-hook 'ruby-style-c-mode)
|
15
|
+
;;; (add-hook 'c++-mode-hook 'ruby-style-c-mode)
|
16
|
+
;;;
|
17
|
+
;;; Customize the c-default-style variable to set the default style
|
18
|
+
;;; for each CC major mode.
|
19
|
+
|
20
|
+
(defconst ruby-style-revision "$Revision: 30485 $"
|
21
|
+
"Ruby style revision string.")
|
22
|
+
|
23
|
+
(defconst ruby-style-version
|
24
|
+
(and
|
25
|
+
(string-match "[0-9.]+" ruby-style-revision)
|
26
|
+
(substring ruby-style-revision (match-beginning 0) (match-end 0)))
|
27
|
+
"Ruby style version number.")
|
28
|
+
|
29
|
+
(defun ruby-style-case-indent (x)
|
30
|
+
(save-excursion
|
31
|
+
(back-to-indentation)
|
32
|
+
(unless (progn (backward-up-list) (back-to-indentation)
|
33
|
+
(> (point) (cdr x)))
|
34
|
+
(goto-char (cdr x))
|
35
|
+
(if (looking-at "\\<case\\|default\\>") '*))))
|
36
|
+
|
37
|
+
(defun ruby-style-label-indent (x)
|
38
|
+
(save-excursion
|
39
|
+
(back-to-indentation)
|
40
|
+
(unless (progn (backward-up-list) (back-to-indentation)
|
41
|
+
(>= (point) (cdr x)))
|
42
|
+
(goto-char (cdr x))
|
43
|
+
(condition-case ()
|
44
|
+
(progn
|
45
|
+
(backward-up-list)
|
46
|
+
(backward-sexp 2)
|
47
|
+
(if (looking-at "\\<switch\\>") '/))
|
48
|
+
(error)))))
|
49
|
+
|
50
|
+
(require 'cc-styles)
|
51
|
+
(c-add-style
|
52
|
+
"ruby"
|
53
|
+
'("bsd"
|
54
|
+
(c-basic-offset . 4)
|
55
|
+
(tab-width . 8)
|
56
|
+
(indent-tabs-mode . t)
|
57
|
+
(setq show-trailing-whitespace t)
|
58
|
+
(c-offsets-alist
|
59
|
+
(case-label . *)
|
60
|
+
(label . (ruby-style-label-indent *))
|
61
|
+
(statement-case-intro . *)
|
62
|
+
(statement-case-open . *)
|
63
|
+
(statement-block-intro . (ruby-style-case-indent +))
|
64
|
+
(access-label /)
|
65
|
+
)))
|
66
|
+
|
67
|
+
(defun ruby-style-c-mode ()
|
68
|
+
(interactive)
|
69
|
+
(if (or (let ((name (buffer-file-name))) (and name (string-match "/ruby\\>" name)))
|
70
|
+
(save-excursion
|
71
|
+
(goto-char (point-min))
|
72
|
+
(let ((head (progn (forward-line 100) (point)))
|
73
|
+
(case-fold-search nil))
|
74
|
+
(goto-char (point-min))
|
75
|
+
(re-search-forward "Copyright (C) .* Yukihiro Matsumoto" head t))))
|
76
|
+
(c-set-style "ruby")))
|
77
|
+
|
78
|
+
(provide 'ruby-style)
|
@@ -0,0 +1,104 @@
|
|
1
|
+
(require 'gud)
|
2
|
+
(provide 'rubydb)
|
3
|
+
|
4
|
+
;; ======================================================================
|
5
|
+
;; rubydb functions
|
6
|
+
|
7
|
+
;;; History of argument lists passed to rubydb.
|
8
|
+
(defvar gud-rubydb-history nil)
|
9
|
+
|
10
|
+
(defun gud-rubydb-massage-args (file args)
|
11
|
+
(cons "-I" (cons "." (cons "-r" (cons "debug" (cons file args))))))
|
12
|
+
|
13
|
+
;; There's no guarantee that Emacs will hand the filter the entire
|
14
|
+
;; marker at once; it could be broken up across several strings. We
|
15
|
+
;; might even receive a big chunk with several markers in it. If we
|
16
|
+
;; receive a chunk of text which looks like it might contain the
|
17
|
+
;; beginning of a marker, we save it here between calls to the
|
18
|
+
;; filter.
|
19
|
+
(defvar gud-rubydb-marker-acc "")
|
20
|
+
|
21
|
+
(defun gud-rubydb-marker-filter (string)
|
22
|
+
(save-match-data
|
23
|
+
(setq gud-marker-acc (concat gud-marker-acc string))
|
24
|
+
(let ((output ""))
|
25
|
+
|
26
|
+
;; Process all the complete markers in this chunk.
|
27
|
+
(while (string-match "\032\032\\([^:\n]*\\):\\([0-9]*\\):.*\n"
|
28
|
+
gud-marker-acc)
|
29
|
+
(setq
|
30
|
+
|
31
|
+
;; Extract the frame position from the marker.
|
32
|
+
gud-last-frame
|
33
|
+
(cons (substring gud-marker-acc (match-beginning 1) (match-end 1))
|
34
|
+
(string-to-int (substring gud-marker-acc
|
35
|
+
(match-beginning 2)
|
36
|
+
(match-end 2))))
|
37
|
+
|
38
|
+
;; Append any text before the marker to the output we're going
|
39
|
+
;; to return - we don't include the marker in this text.
|
40
|
+
output (concat output
|
41
|
+
(substring gud-marker-acc 0 (match-beginning 0)))
|
42
|
+
|
43
|
+
;; Set the accumulator to the remaining text.
|
44
|
+
gud-marker-acc (substring gud-marker-acc (match-end 0))))
|
45
|
+
|
46
|
+
;; Does the remaining text look like it might end with the
|
47
|
+
;; beginning of another marker? If it does, then keep it in
|
48
|
+
;; gud-marker-acc until we receive the rest of it. Since we
|
49
|
+
;; know the full marker regexp above failed, it's pretty simple to
|
50
|
+
;; test for marker starts.
|
51
|
+
(if (string-match "\032.*\\'" gud-marker-acc)
|
52
|
+
(progn
|
53
|
+
;; Everything before the potential marker start can be output.
|
54
|
+
(setq output (concat output (substring gud-marker-acc
|
55
|
+
0 (match-beginning 0))))
|
56
|
+
|
57
|
+
;; Everything after, we save, to combine with later input.
|
58
|
+
(setq gud-marker-acc
|
59
|
+
(substring gud-marker-acc (match-beginning 0))))
|
60
|
+
|
61
|
+
(setq output (concat output gud-marker-acc)
|
62
|
+
gud-marker-acc ""))
|
63
|
+
|
64
|
+
output)))
|
65
|
+
|
66
|
+
(defun gud-rubydb-find-file (f)
|
67
|
+
(find-file-noselect f))
|
68
|
+
|
69
|
+
(defvar rubydb-command-name "ruby"
|
70
|
+
"File name for executing ruby.")
|
71
|
+
|
72
|
+
;;;###autoload
|
73
|
+
(defun rubydb (command-line)
|
74
|
+
"Run rubydb on program FILE in buffer *gud-FILE*.
|
75
|
+
The directory containing FILE becomes the initial working directory
|
76
|
+
and source-file directory for your debugger."
|
77
|
+
(interactive
|
78
|
+
(list (read-from-minibuffer "Run rubydb (like this): "
|
79
|
+
(if (consp gud-rubydb-history)
|
80
|
+
(car gud-rubydb-history)
|
81
|
+
(concat rubydb-command-name " "))
|
82
|
+
nil nil
|
83
|
+
'(gud-rubydb-history . 1))))
|
84
|
+
|
85
|
+
(gud-overload-functions '((gud-massage-args . gud-rubydb-massage-args)
|
86
|
+
(gud-marker-filter . gud-rubydb-marker-filter)
|
87
|
+
(gud-find-file . gud-rubydb-find-file)
|
88
|
+
))
|
89
|
+
(gud-common-init command-line)
|
90
|
+
|
91
|
+
(gud-def gud-break "b %l" "\C-b" "Set breakpoint at current line.")
|
92
|
+
; (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line")
|
93
|
+
(gud-def gud-step "s" "\C-s" "Step one source line with display.")
|
94
|
+
(gud-def gud-next "n" "\C-n" "Step one line (skip functions).")
|
95
|
+
(gud-def gud-cont "c" "\C-r" "Continue with display.")
|
96
|
+
(gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
|
97
|
+
(gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
|
98
|
+
(gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
|
99
|
+
(gud-def gud-print "p %e" "\C-p" "Evaluate ruby expression at point.")
|
100
|
+
|
101
|
+
(setq comint-prompt-regexp "^(rdb:-) ")
|
102
|
+
(setq paragraph-start comint-prompt-regexp)
|
103
|
+
(run-hooks 'rubydb-mode-hook)
|
104
|
+
)
|
@@ -0,0 +1,115 @@
|
|
1
|
+
(require 'gud)
|
2
|
+
(provide 'rubydb)
|
3
|
+
|
4
|
+
;; ======================================================================
|
5
|
+
;; rubydb functions
|
6
|
+
|
7
|
+
;;; History of argument lists passed to rubydb.
|
8
|
+
(defvar gud-rubydb-history nil)
|
9
|
+
|
10
|
+
(if (fboundp 'gud-overload-functions)
|
11
|
+
(defun gud-rubydb-massage-args (file args)
|
12
|
+
(cons "-r" (cons "debug" (cons file args))))
|
13
|
+
(defun gud-rubydb-massage-args (file args)
|
14
|
+
(cons "-r" (cons "debug" args))))
|
15
|
+
|
16
|
+
;; There's no guarantee that Emacs will hand the filter the entire
|
17
|
+
;; marker at once; it could be broken up across several strings. We
|
18
|
+
;; might even receive a big chunk with several markers in it. If we
|
19
|
+
;; receive a chunk of text which looks like it might contain the
|
20
|
+
;; beginning of a marker, we save it here between calls to the
|
21
|
+
;; filter.
|
22
|
+
(defvar gud-rubydb-marker-acc "")
|
23
|
+
(make-variable-buffer-local 'gud-rubydb-marker-acc)
|
24
|
+
|
25
|
+
(defun gud-rubydb-marker-filter (string)
|
26
|
+
(setq gud-rubydb-marker-acc (concat gud-rubydb-marker-acc string))
|
27
|
+
(let ((output ""))
|
28
|
+
|
29
|
+
;; Process all the complete markers in this chunk.
|
30
|
+
(while (string-match "\032\032\\([^:\n]*\\):\\([0-9]*\\):.*\n"
|
31
|
+
gud-rubydb-marker-acc)
|
32
|
+
(setq
|
33
|
+
|
34
|
+
;; Extract the frame position from the marker.
|
35
|
+
gud-last-frame
|
36
|
+
(cons (substring gud-rubydb-marker-acc (match-beginning 1) (match-end 1))
|
37
|
+
(string-to-int (substring gud-rubydb-marker-acc
|
38
|
+
(match-beginning 2)
|
39
|
+
(match-end 2))))
|
40
|
+
|
41
|
+
;; Append any text before the marker to the output we're going
|
42
|
+
;; to return - we don't include the marker in this text.
|
43
|
+
output (concat output
|
44
|
+
(substring gud-rubydb-marker-acc 0 (match-beginning 0)))
|
45
|
+
|
46
|
+
;; Set the accumulator to the remaining text.
|
47
|
+
gud-rubydb-marker-acc (substring gud-rubydb-marker-acc (match-end 0))))
|
48
|
+
|
49
|
+
;; Does the remaining text look like it might end with the
|
50
|
+
;; beginning of another marker? If it does, then keep it in
|
51
|
+
;; gud-rubydb-marker-acc until we receive the rest of it. Since we
|
52
|
+
;; know the full marker regexp above failed, it's pretty simple to
|
53
|
+
;; test for marker starts.
|
54
|
+
(if (string-match "\032.*\\'" gud-rubydb-marker-acc)
|
55
|
+
(progn
|
56
|
+
;; Everything before the potential marker start can be output.
|
57
|
+
(setq output (concat output (substring gud-rubydb-marker-acc
|
58
|
+
0 (match-beginning 0))))
|
59
|
+
|
60
|
+
;; Everything after, we save, to combine with later input.
|
61
|
+
(setq gud-rubydb-marker-acc
|
62
|
+
(substring gud-rubydb-marker-acc (match-beginning 0))))
|
63
|
+
|
64
|
+
(setq output (concat output gud-rubydb-marker-acc)
|
65
|
+
gud-rubydb-marker-acc ""))
|
66
|
+
|
67
|
+
output))
|
68
|
+
|
69
|
+
(defun gud-rubydb-find-file (f)
|
70
|
+
(save-excursion
|
71
|
+
(let ((buf (find-file-noselect f)))
|
72
|
+
(set-buffer buf)
|
73
|
+
;; (gud-make-debug-menu)
|
74
|
+
buf)))
|
75
|
+
|
76
|
+
(defvar rubydb-command-name "ruby"
|
77
|
+
"File name for executing ruby.")
|
78
|
+
|
79
|
+
;;;###autoload
|
80
|
+
(defun rubydb (command-line)
|
81
|
+
"Run rubydb on program FILE in buffer *gud-FILE*.
|
82
|
+
The directory containing FILE becomes the initial working directory
|
83
|
+
and source-file directory for your debugger."
|
84
|
+
(interactive
|
85
|
+
(list (read-from-minibuffer "Run rubydb (like this): "
|
86
|
+
(if (consp gud-rubydb-history)
|
87
|
+
(car gud-rubydb-history)
|
88
|
+
(concat rubydb-command-name " "))
|
89
|
+
nil nil
|
90
|
+
'(gud-rubydb-history . 1))))
|
91
|
+
|
92
|
+
(if (not (fboundp 'gud-overload-functions))
|
93
|
+
(gud-common-init command-line 'gud-rubydb-massage-args
|
94
|
+
'gud-rubydb-marker-filter 'gud-rubydb-find-file)
|
95
|
+
(gud-overload-functions '((gud-massage-args . gud-rubydb-massage-args)
|
96
|
+
(gud-marker-filter . gud-rubydb-marker-filter)
|
97
|
+
(gud-find-file . gud-rubydb-find-file)))
|
98
|
+
(gud-common-init command-line rubydb-command-name))
|
99
|
+
|
100
|
+
(gud-def gud-break "b %l" "\C-b" "Set breakpoint at current line.")
|
101
|
+
; (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line")
|
102
|
+
(gud-def gud-step "s" "\C-s" "Step one source line with display.")
|
103
|
+
(gud-def gud-next "n" "\C-n" "Step one line (skip functions).")
|
104
|
+
(gud-def gud-cont "c" "\C-r" "Continue with display.")
|
105
|
+
(gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
|
106
|
+
(gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
|
107
|
+
(gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
|
108
|
+
(gud-def gud-print "p %e" "\C-p" "Evaluate ruby expression at point.")
|
109
|
+
|
110
|
+
(setq comint-prompt-regexp "^(rdb:-) ")
|
111
|
+
(if (boundp 'comint-last-output-start)
|
112
|
+
(set-marker comint-last-output-start (point)))
|
113
|
+
(set (make-local-variable 'paragraph-start) comint-prompt-regexp)
|
114
|
+
(run-hooks 'rubydb-mode-hook)
|
115
|
+
)
|
@@ -0,0 +1,244 @@
|
|
1
|
+
;; るびきちのyaml-modeの説明従って..
|
2
|
+
;; http://emacs.rubikitch.com/yaml-mode/
|
3
|
+
;; 学内からはsetproxyを忘れぬように.
|
4
|
+
(require 'package)
|
5
|
+
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
|
6
|
+
(add-to-list 'package-archives '("marmalade" . "http://maramalae-repo.org/packages/"))
|
7
|
+
(add-to-list 'package-archives '("org" . "http:/orgmode.org/elpa/") t)
|
8
|
+
(add-to-list 'package-archives '("org-plus-contrib" . "https:/orgmode.org/elpa/contrib") t)
|
9
|
+
|
10
|
+
(fset 'package-desc-vers 'package--ac-desc-version)
|
11
|
+
(package-initialize)
|
12
|
+
|
13
|
+
;; '(("gnu" . "http://elpa.gnu.org/packages/")
|
14
|
+
|
15
|
+
;; るびきちのemacs lispテクニックバイブルに従ってdefaultの色つけを活性化
|
16
|
+
;; (require 'generic-x)
|
17
|
+
;; tabの自動生成がうっとおしいからやめた
|
18
|
+
|
19
|
+
;; elファイルの置き場所を設定
|
20
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/inits" load-path))
|
21
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/ruby-mode" load-path))
|
22
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/processing-mode" load-path))
|
23
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/haml-mode-master" load-path))
|
24
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/org-mode" load-path))
|
25
|
+
(setq load-path (cons "~/ruby_learner/workshop/emacs.d/themes" load-path))
|
26
|
+
|
27
|
+
;; 画面分割
|
28
|
+
(setq w (selected-window))
|
29
|
+
(setq w3 (split-window w nil t))
|
30
|
+
;; 画面移動
|
31
|
+
;; (setq windmove-wrap-around t)
|
32
|
+
(setq w2 (split-window w nil nil))
|
33
|
+
;; scratch文字
|
34
|
+
(setq initial-scratch-message "ctrl x & ctrl f 後に answer.rb を入力。")
|
35
|
+
(insert-file-contents "~/ruby_learner/workshop/lib/answer.rb" nil 0 500)
|
36
|
+
(ruby-mode)
|
37
|
+
(find-file "~/ruby_learner/workshop/lib/answer.rb")
|
38
|
+
;;setting_theme
|
39
|
+
(add-to-list 'custom-theme-load-path "~/ruby_learner/workshop/emacs.d/themes")
|
40
|
+
(setq custom-theme-directory "~/ruby_learner/workshop/emacs.d/themes")
|
41
|
+
;;(load-theme 'iceberg t)
|
42
|
+
;;(load-theme 'dracula t)
|
43
|
+
;;(load-theme 'my-misterioso t)
|
44
|
+
(load-theme 'my-wombat t)
|
45
|
+
|
46
|
+
;; 起動時にスタートアップ画面を表示しない
|
47
|
+
(setq inhibit-startup-message t)
|
48
|
+
;; 1 行ずつスムーズにスクロールする
|
49
|
+
(setq scroll-step 1)
|
50
|
+
;; 行数を記載する
|
51
|
+
(global-linum-mode t)
|
52
|
+
(setq linum-format "%d")
|
53
|
+
(set-face-attribute 'linum nil
|
54
|
+
:foreground "#999999"
|
55
|
+
:background "#000000"
|
56
|
+
:height 0.9)
|
57
|
+
;; 括弧補完
|
58
|
+
;;(electric-pair-mode 1)
|
59
|
+
;; 行数を指定してジャンプする (goto-line)
|
60
|
+
;;(global-set-key "\C-l" 'goto-line)
|
61
|
+
;; 言語を日本語に設定
|
62
|
+
(set-language-environment 'Japanese)
|
63
|
+
;; 極力UTF-8とする
|
64
|
+
(prefer-coding-system 'utf-8)
|
65
|
+
|
66
|
+
;; エンコード方式をUTF-8に
|
67
|
+
(set-default-coding-systems 'utf-8)
|
68
|
+
|
69
|
+
(setq coding-system-for-read 'utf-8)
|
70
|
+
(setq coding-system-for-write 'utf-8)
|
71
|
+
(require 'ruby-mode)
|
72
|
+
(defun ruby-mode-set-encoding () nil)
|
73
|
+
;; C-zでUndo
|
74
|
+
;;(global-set-key "\C-z" 'undo)
|
75
|
+
;; 行番号をデフォルトで表示
|
76
|
+
;;(require 'line-num)
|
77
|
+
;;(global-linum-mode 1)
|
78
|
+
;; 対応する括弧を光らせる
|
79
|
+
(show-paren-mode 1)
|
80
|
+
;; 最近使ったファイルの一覧
|
81
|
+
(recentf-mode 1)
|
82
|
+
;; タイトルバーに開いているバッファのパスを表示
|
83
|
+
(setq frame-title-format (format "%%f - Emacs@%s" (system-name)))
|
84
|
+
;; 現在行を目立たせる
|
85
|
+
;; (global-hl-line-mode)
|
86
|
+
;; バックアップファイルを作らない
|
87
|
+
;; (setq backup-inhibited t)
|
88
|
+
;; モードラインに時間を表示する
|
89
|
+
(display-time)
|
90
|
+
;; 現在の関数名をモードラインに表示
|
91
|
+
(which-function-mode 1)
|
92
|
+
;; 選択部分のインデント
|
93
|
+
(global-set-key "\C-x\C-i" 'indent-region)
|
94
|
+
|
95
|
+
(defun linux-c-mode ()
|
96
|
+
"C mode with adjusted defaults for use with the Linux kernel."
|
97
|
+
(interactive)
|
98
|
+
(c-mode)
|
99
|
+
(setq c-indent-level 8)
|
100
|
+
(setq c-brace-imaginary-offset 0)
|
101
|
+
(setq c-brace-offset -8)
|
102
|
+
(setq c-argdecl-indent 8)
|
103
|
+
(setq c-label-offset -8)
|
104
|
+
(setq c-continued-statement-offset 8)
|
105
|
+
(setq indent-tabs-mode nil)
|
106
|
+
(setq tab-width 8)
|
107
|
+
)
|
108
|
+
|
109
|
+
;; ======================================================================
|
110
|
+
;; Ruby mode
|
111
|
+
;; ======================================================================
|
112
|
+
(add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode))
|
113
|
+
(add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode))
|
114
|
+
(add-to-list 'auto-mode-alist '("\\.gemspec$" . ruby-mode))
|
115
|
+
(add-to-list 'auto-mode-alist '("\\.ru$" . ruby-mode))
|
116
|
+
(add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode))
|
117
|
+
(add-to-list 'auto-mode-alist '("Guardfile$" . ruby-mode))
|
118
|
+
(add-to-list 'auto-mode-alist '("Guardfile$" . ruby-mode))
|
119
|
+
|
120
|
+
(autoload 'ruby-mode "ruby-mode"
|
121
|
+
"Mode for editing ruby source files" t)
|
122
|
+
(setq auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
|
123
|
+
(setq auto-mode-alist (append '(("\\.ru$" . ruby-mode)) auto-mode-alist))
|
124
|
+
(setq auto-mode-alist (append '(("\\.ru$" . ruby-mode)) auto-mode-alist))
|
125
|
+
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
|
126
|
+
interpreter-mode-alist))
|
127
|
+
(prefer-coding-system 'utf-8)
|
128
|
+
(setq coding-system-for-read 'utf-8)
|
129
|
+
(setq coding-system-for-write 'utf-8)
|
130
|
+
(autoload 'run-ruby "inf-ruby"
|
131
|
+
"Run an inferior Ruby process")
|
132
|
+
(autoload 'inf-ruby-keys "inf-ruby"
|
133
|
+
"Set local key defs for inf-ruby in ruby-mode")
|
134
|
+
(add-hook 'ruby-mode-hook
|
135
|
+
'(lambda ()
|
136
|
+
(inf-ruby-keys)))
|
137
|
+
(global-font-lock-mode 1)
|
138
|
+
|
139
|
+
;;;ruby-electric.el --- electric editing commands for ruby files
|
140
|
+
;;(require 'ruby-electric)
|
141
|
+
;;(add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t)))
|
142
|
+
|
143
|
+
(setq ruby-indent-level 2)
|
144
|
+
(setq ruby-indent-tabs-mode nil)
|
145
|
+
|
146
|
+
;; ruby code folding from https://coderwall.com/p/u-l0ra/ruby-code-folding-in-emacs
|
147
|
+
(add-hook 'ruby-mode-hook
|
148
|
+
(lambda () (hs-minor-mode)))
|
149
|
+
|
150
|
+
(eval-after-load "hideshow"
|
151
|
+
'(add-to-list 'hs-special-modes-alist
|
152
|
+
`(ruby-mode
|
153
|
+
,(rx (or "def" "class" "module" "do" "{" "[")) ; Block start
|
154
|
+
,(rx (or "}" "]" "end")) ; Block end
|
155
|
+
,(rx (or "#" "=begin")) ; Comment start
|
156
|
+
ruby-forward-sexp nil)))
|
157
|
+
|
158
|
+
(global-set-key (kbd "C-c h") 'hs-hide-block)
|
159
|
+
(global-set-key (kbd "C-c s") 'hs-show-block)
|
160
|
+
|
161
|
+
;; ======================================================================
|
162
|
+
;; Processing mode
|
163
|
+
;; ======================================================================
|
164
|
+
;;(add-to-list 'load-path "/Users/bob/ruby-processing/processing2-emacs")
|
165
|
+
(autoload 'processing-mode "processing-mode" "Processing mode" t)
|
166
|
+
(add-to-list 'auto-mode-alist '("\\.pde$" . processing-mode))
|
167
|
+
(setq processing-indent-level 2)
|
168
|
+
|
169
|
+
(setq processing-location "/Users/bob/bin/processing-java")
|
170
|
+
(setq processing-application-dir "/Applications/Processing.app")
|
171
|
+
(setq processing-sketch-dir "~/Documents/Processing")
|
172
|
+
|
173
|
+
(setq-default indent-tabs-mode nil)
|
174
|
+
(setq tab-width 2)
|
175
|
+
|
176
|
+
;; =======================
|
177
|
+
;; haml mode
|
178
|
+
;; =======================
|
179
|
+
;;``` lisp
|
180
|
+
(require 'haml-mode)
|
181
|
+
;;```
|
182
|
+
(autoload 'haml-mode "haml-mode" "haml mode" t)
|
183
|
+
(add-to-list 'auto-mode-alist '("\\.haml$" . haml-mode))
|
184
|
+
(setq-default indent-tabs-mode t)
|
185
|
+
(setq tab-width 2)
|
186
|
+
|
187
|
+
;; =======================
|
188
|
+
;; yaml mode
|
189
|
+
;; =======================
|
190
|
+
(require 'yaml-mode)
|
191
|
+
(add-to-list 'auto-mode-alist '("\\.ya?ml$" . yaml-mode))
|
192
|
+
(define-key yaml-mode-map "\C-m" 'newline-and-indent)
|
193
|
+
|
194
|
+
;; =======================
|
195
|
+
;; org mode
|
196
|
+
;; =======================
|
197
|
+
(require 'ox-latex)
|
198
|
+
;; (require 'ox-bibtex) こいつは無くなったんかな.イランで.
|
199
|
+
|
200
|
+
;; org-modeで行末で折り返しをする
|
201
|
+
(setq org-startup-truncated nil)
|
202
|
+
(unless (boundp 'org-latex-classes)
|
203
|
+
(setq org-latex-classes nil))
|
204
|
+
(add-to-list 'org-latex-classes
|
205
|
+
'("article"
|
206
|
+
"
|
207
|
+
\\documentclass{jsarticle}
|
208
|
+
\\usepackage[dvipdfmx]{graphicx}
|
209
|
+
\\usepackage[utf8]{inputenc}
|
210
|
+
\\usepackage[T1]{fontenc}
|
211
|
+
"
|
212
|
+
("\\section{%s}" . "\\section*{%s}")
|
213
|
+
("\\subsection{%s}" . "\\subsection*{%s}")
|
214
|
+
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
|
215
|
+
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
216
|
+
("\\subparagraph{%s}" . "\\subparagraph*{%s}")
|
217
|
+
))
|
218
|
+
|
219
|
+
;;; LaTeX 形式のファイル PDF に変換するためのコマンド
|
220
|
+
(setq org-latex-pdf-process
|
221
|
+
'("platex %f"
|
222
|
+
"bibtex %b"
|
223
|
+
"platex %f"
|
224
|
+
"platex %f"
|
225
|
+
"dvipdfmx %b.dvi"))
|
226
|
+
|
227
|
+
(custom-set-variables
|
228
|
+
;; custom-set-variables was added by Custom.
|
229
|
+
;; If you edit it by hand, you could mess it up, so be careful.
|
230
|
+
;; Your init file should contain only one such instance.
|
231
|
+
;; If there is more than one, they won't work right.
|
232
|
+
'(org-latex-pdf-process
|
233
|
+
(quote
|
234
|
+
("pdflatex -interaction nonstopmode -output-directory %o %f"
|
235
|
+
"bibtex %o"
|
236
|
+
"pdflatex -interaction nonstopmode -output-directory %o %f"
|
237
|
+
"pdflatex -interaction nonstopmode -output-directory %o %f")))
|
238
|
+
'(package-selected-packages (quote (haml-mode yaml-mode))))
|
239
|
+
(custom-set-faces
|
240
|
+
;; custom-set-faces was added by Custom.
|
241
|
+
;; If you edit it by hand, you could mess it up, so be careful.
|
242
|
+
;; Your init file should contain only one such instance.
|
243
|
+
;; If there is more than one, they won't work right.
|
244
|
+
)
|