relisp 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (C) 2009 <don@ohspite.net>
2
+ # Copyright (C) 2009, 2010 Don March
3
3
  #
4
4
  # This file is part of Relisp.
5
5
  #
@@ -57,13 +57,13 @@ module Relisp
57
57
  # * (<em>slave = Relisp.default_slave</em>)
58
58
  #
59
59
  # When a _symbol_ is given it is considered to be the name of a
60
- # pre-existing bufer in the _slave_ process. Otherwise a new
60
+ # pre-existing buffer in the _slave_ process. Otherwise a new
61
61
  # buffer is created (<tt>generate-new-buffer</tt>). The name is
62
62
  # _string_, if given, and a variant of "relisp-buffer" otherwise.
63
63
  #
64
64
  def initialize(*args)
65
- super do |args|
66
- name = args[0] ? args[0] : "relisp-buffer"
65
+ super do |sargs|
66
+ name = sargs[0] ? sargs[0] : "relisp-buffer"
67
67
  raise ArgumentError unless name.kind_of?(String)
68
68
  @slave.elisp_exec( "(setq #{@elisp_variable} (generate-new-buffer #{name.to_elisp}))" )
69
69
  end
@@ -72,11 +72,11 @@ module Relisp
72
72
  private
73
73
 
74
74
  def eval_in_buffer(code)
75
- @slave.elisp_eval <<-EOM
76
- (save-excursion
77
- (set-buffer #{@elisp_variable})
78
- #{code})
79
- EOM
75
+ @slave.elisp_eval <<EOM
76
+ (save-excursion
77
+ (set-buffer #{@elisp_variable})
78
+ #{code})
79
+ EOM
80
80
  end
81
81
 
82
82
  public
@@ -85,12 +85,11 @@ module Relisp
85
85
  @slave.set_buffer(@elisp_variable.value)
86
86
  end
87
87
 
88
+ ##
88
89
  # Return the name of Buffer, as a string (<tt>buffer-name</tt>).
89
90
  #
90
- def name
91
- call_on_self :buffer_name
92
- end
93
-
91
+ elisp_alias :name, :buffer_name
92
+
94
93
  # Change current buffer's name to _newname_ (a string). If
95
94
  # _unique_ is nil, it is an error if a buffer named _newname_
96
95
  # already exists. If _unique_ is non-nil, come up with a new name
@@ -101,12 +100,13 @@ module Relisp
101
100
  eval_in_buffer "(rename-buffer #{newname.to_elisp} #{unique.to_elisp})"
102
101
  end
103
102
 
103
+ alias name= rename
104
+
105
+ #
104
106
  # Return name of file that the Buffer is visiting, or nil if none
105
107
  # (<tt>buffer-file-name</tt>).
106
108
  #
107
- def filename
108
- call_on_self :buffer_file_name
109
- end
109
+ elisp_alias :filename, :buffer_file_name
110
110
 
111
111
  # Change name of file visited in the Buffer to _newname_. This
112
112
  # also renames the buffer to correspond to the new file. The next
@@ -124,10 +124,6 @@ module Relisp
124
124
  eval_in_buffer "(set-visited-file-name #{newname.to_elisp} t #{along_with_file.to_elisp})"
125
125
  end
126
126
 
127
- def modified?
128
- call_on_self :buffer_modified_p
129
- end
130
-
131
127
  def set_modified(flag=true)
132
128
  eval_in_buffer "(set-buffer-modified-p #{flag.to_elisp})"
133
129
  end
@@ -136,13 +132,14 @@ module Relisp
136
132
  set_modified(flag)
137
133
  end
138
134
 
139
- def modified_tick
140
- call_on_self :buffer_modified_tick
141
- end
135
+ ##
136
+ elisp_alias :modified?, :buffer_modified_p
142
137
 
143
- def chars_modified_tick
144
- call_on_self :buffer_chars_modified_tick
145
- end
138
+ ##
139
+ elisp_alias :modified_tick, :buffer_modified_tick
140
+
141
+ ##
142
+ elisp_alias :chars_modified_tick, :buffer_chars_modified_tick
146
143
 
147
144
  def read_only?
148
145
  eval_in_buffer "buffer-read-only"
@@ -169,9 +166,8 @@ module Relisp
169
166
  kill
170
167
  end
171
168
 
172
- def alive?
173
- call_on_self :buffer_live_p
174
- end
169
+ ##
170
+ elisp_alias :alive?, :buffer_live_p
175
171
 
176
172
  # Save the buffer in its visited file, if it has been modified
177
173
  # (<tt>save-buffer</tt>).
@@ -185,9 +181,8 @@ module Relisp
185
181
  eval_in_buffer "(with-output-to-string (write-file #{newfile.to_elisp}))"
186
182
  end
187
183
 
188
- def size
189
- call_on_self :buffer_size
190
- end
184
+ ##
185
+ elisp_alias :size, :buffer_size
191
186
 
192
187
  def substring(start_position, end_position)
193
188
  eval_in_buffer "(buffer-substring #{start_position} #{end_position})"
@@ -205,17 +200,15 @@ module Relisp
205
200
  eval_in_buffer "(erase-buffer)"
206
201
  end
207
202
 
208
- def window
209
- call_on_self :get_buffer_window
210
- end
203
+ ##
204
+ elisp_alias :window, :get_buffer_window
211
205
 
212
206
  def window=(new_window)
213
207
  new_window.buffer = self
214
208
  end
215
209
 
216
- def windows
217
- call_on_self :get_buffer_window_list
218
- end
210
+ ##
211
+ elisp_alias :windows, :get_buffer_window_list
219
212
 
220
213
  def insert(object)
221
214
  eval_in_buffer "(insert #{object.to_elisp})"
@@ -252,7 +245,7 @@ module Relisp
252
245
  end
253
246
  end
254
247
 
255
- # A proxy to an Emacs marker.
248
+ # A proxy to an Emacs marker.
256
249
  #
257
250
  class Marker < Proxy
258
251
 
@@ -270,17 +263,14 @@ module Relisp
270
263
  end
271
264
  end
272
265
 
273
- def position
274
- call_on_self :marker_position
275
- end
266
+ ##
267
+ elisp_alias :position, :marker_position
276
268
 
277
- def buffer
278
- call_on_self :marker_buffer
279
- end
269
+ ##
270
+ elisp_alias :buffer, :marker_buffer
280
271
 
281
- def insertion_type
282
- call_on_self :marker_insertion_type
283
- end
272
+ ##
273
+ elisp_alias :insertion_type, :marker_insertion_type
284
274
 
285
275
  def insertion_type=(type)
286
276
  @slave.elisp_eval( "(set-marker-insertion-type #{@elisp_variable} #{type.to_elisp})" )
@@ -294,7 +284,7 @@ module Relisp
294
284
  alias position= set
295
285
  end
296
286
 
297
- # A proxy to an Emacs window
287
+ # A proxy to an Emacs window
298
288
  #
299
289
  class Window < Proxy
300
290
 
@@ -306,24 +296,23 @@ module Relisp
306
296
  #
307
297
  def initialize(*args)
308
298
  super do
309
- raise ArgumentError, "Cannot create Window using 'new' method."
299
+ raise ArgumentError, "Cannot create Window proxy without existing elisp variable."
310
300
  end
311
301
  end
312
302
 
313
303
  private
314
304
 
315
305
  def eval_in_window(code)
316
- @slave.elisp_eval <<-EOM
317
- (with-selected-window #{@elisp_variable}
318
- #{code})
319
- EOM
306
+ @slave.elisp_eval <<EOM
307
+ (with-selected-window #{@elisp_variable}
308
+ #{code})
309
+ EOM
320
310
  end
321
311
 
322
312
  public
323
313
 
324
- def split(size=nil, horizontal=false)
325
- call_on_self :split_window, size, horizontal
326
- end
314
+ ##
315
+ elisp_alias "split(size=nil, horizontal=false)", "split_window, size, horizontal"
327
316
 
328
317
  def split_horizontally(size=nil)
329
318
  split(size, true)
@@ -333,58 +322,45 @@ module Relisp
333
322
  split(size, false)
334
323
  end
335
324
 
336
- def alive?
337
- call_on_self :window_live_p
338
- end
325
+ ##
326
+ elisp_alias :alive?, :window_live_p
339
327
 
340
- def delete
341
- call_on_self :delete_window
342
- end
328
+ ##
329
+ elisp_alias :delete, :delete_window
343
330
 
344
- def delete_others
345
- call_on_self :delete_other_windows
346
- end
331
+ ##
332
+ elisp_alias :delete_others, :delete_other_windows
347
333
 
348
- def select
349
- call_on_self :select_window
350
- end
334
+ ##
335
+ elisp_alias :select, :select_window
351
336
 
352
- def buffer
353
- call_on_self :window_buffer
354
- end
337
+ ##
338
+ elisp_alias :buffer, :window_buffer
355
339
 
356
- def buffer=(new_buffer)
357
- call_on_self :set_window_buffer, new_buffer
358
- end
340
+ ##
341
+ elisp_alias 'buffer=(new_buffer)', 'set_window_buffer, new_buffer'
359
342
 
360
- def dedicated
361
- call_on_self :window_dedicated_p
362
- end
343
+ ##
344
+ elisp_alias :dedicated, :window_dedicated_p
363
345
 
364
- def dedicated=(flag)
365
- call_on_self :set_window_dedicated_p, flag
366
- end
346
+ ##
347
+ elisp_alias 'dedicated=(flag)', 'set_window_dedicated_p, flag'
367
348
 
368
- def point
369
- call_on_self :window_point
370
- end
349
+ ##
350
+ elisp_alias :point, :window_point
371
351
 
372
- def point=(position)
373
- call_on_self :set_window_point, position
374
- end
352
+ ##
353
+ elisp_alias 'point=(position)', 'set_window_point, position'
375
354
 
376
- def start
377
- # eval_in_window "(window-start)"
378
- call_on_self :window_start
379
- end
355
+ ##
356
+ elisp_alias :start, :window_start
357
+ # eval_in_window "(window-start)"
380
358
 
381
- def start=(position)
382
- call_on_self :set_window_start, position
383
- end
359
+ ##
360
+ elisp_alias 'start=(position)', 'set_window_start, position'
384
361
 
385
- def end
386
- call_on_self :window_end
387
- end
362
+ ##
363
+ elisp_alias :end , :window_end
388
364
 
389
365
  def visible?(position)
390
366
  @slave.elisp_eval( "(pos-visible-in-window-p #{position.to_elisp} #{@elisp_variable})" )
@@ -402,21 +378,17 @@ module Relisp
402
378
  eval_in_window "(recenter #{count.to_elisp})"
403
379
  end
404
380
 
405
- def vscroll
406
- call_on_self :window_vscroll
407
- end
381
+ ##
382
+ elisp_alias :vscroll, :window_vscroll
408
383
 
409
- def vscroll_in_pixels
410
- call_on_self :window_vscroll, true
411
- end
384
+ ##
385
+ elisp_alias 'vscroll_in_pixels', 'window_vscroll, true'
412
386
 
413
- def vscroll=(lines)
414
- call_on_self :set_window_vscroll, lines
415
- end
387
+ ##
388
+ elisp_alias 'vscroll=(lines)', 'set_window_vscroll, lines'
416
389
 
417
- def vscroll_in_pixels=(pixels)
418
- call_on_self :set_window_vscroll, pixels, true
419
- end
390
+ ##
391
+ elisp_alias 'vscroll_in_pixels=(pixels)', 'set_window_vscroll, pixels, true'
420
392
 
421
393
  def scroll_left(count=nil)
422
394
  eval_in_window "(scroll-left #{count.to_elisp})"
@@ -425,26 +397,21 @@ module Relisp
425
397
  def scroll_right(count=nil)
426
398
  eval_in_window "(scroll-right #{count.to_elisp})"
427
399
  end
428
-
429
- def hscroll
430
- call_on_self :window_hscroll
431
- end
432
400
 
433
- def hscroll=(columns)
434
- call_on_self :set_window_hscroll, columns
435
- end
401
+ ##
402
+ elisp_alias :hscroll, :window_hscroll
436
403
 
437
- def height
438
- call_on_self :window_height
439
- end
404
+ ##
405
+ elisp_alias "hscroll=(columns)", "set_window_hscroll, columns"
440
406
 
441
- def body_height
442
- call_on_self :window_body_height
443
- end
407
+ ##
408
+ elisp_alias :height, :window_height
444
409
 
445
- def width
446
- call_on_self :window_width
447
- end
410
+ ##
411
+ elisp_alias :body_height, :window_body_height
412
+
413
+ ##
414
+ elisp_alias :width, :window_width
448
415
 
449
416
  def edges
450
417
  (call_on_self :window_edges).to_list
@@ -472,9 +439,8 @@ module Relisp
472
439
  eval_in_window "(shrink-window-horizontally #{horizontal.to_elisp})" unless horizontal == 0
473
440
  end
474
441
 
475
- def frame
476
- call_on_self :window_frame
477
- end
442
+ ##
443
+ elisp_alias :frame, :window_frame
478
444
 
479
445
  def ==(window2)
480
446
  @slave.elisp_eval "(equal #{to_elisp} #{window2.to_elisp})"
@@ -522,8 +488,8 @@ module Relisp
522
488
  # The frame should use the terminal identified by _id_.
523
489
  #
524
490
  def initialize(*args)
525
- super do |args|
526
- hash = args[0]
491
+ super do |sargs|
492
+ hash = sargs[0]
527
493
  alist = ""
528
494
  if hash && hash.size > 1
529
495
  alist << "'("
@@ -542,59 +508,46 @@ module Relisp
542
508
  end
543
509
  end
544
510
 
545
- def delete
546
- call_on_self :delete_frame
547
- end
511
+ ##
512
+ elisp_alias :delete, :delete_frame
548
513
 
549
- def alive?
550
- call_on_self :frame_live_p
551
- end
514
+ ##
515
+ elisp_alias :alive?, :frame_live_p
552
516
 
553
- def selected_window
554
- call_on_self :frame_selected_window
555
- end
517
+ ##
518
+ elisp_alias :selected_window, :frame_selected_window
556
519
 
557
- def selected_window=(window)
558
- call_on_self :set_frame_selected_window, window
559
- end
560
-
561
- def focus
562
- call_on_self :select_frame_set_input_focus
563
- end
520
+ ##
521
+ elisp_alias "selected_window=(window)", "set_frame_selected_window, window"
564
522
 
565
- def select
566
- call_on_self :select_frame
567
- end
523
+ ##
524
+ elisp_alias :focus, :select_frame_set_input_focus
568
525
 
569
- def visible?
570
- call_on_self :frame_visible_p
571
- end
526
+ ##
527
+ elisp_alias :select, :select_frame
572
528
 
573
- def show
574
- call_on_self :make_frame_visible
575
- end
529
+ ##
530
+ elisp_alias :visible?, :frame_visible_p
576
531
 
577
- def hide
578
- call_on_self :make_frame_invisible
579
- end
532
+ ##
533
+ elisp_alias :show, :make_frame_visible
580
534
 
581
- def iconify
582
- call_on_self :inconify_frame
583
- end
535
+ ##
536
+ elisp_alias :hide, :make_frame_invisible
584
537
 
585
- def raise
586
- call_on_self :raise_frame
587
- end
538
+ ##
539
+ elisp_alias :iconify, :inconify_frame
588
540
 
589
- def lower
590
- call_on_self :lower_frame
591
- end
541
+ ##
542
+ elisp_alias :raise, :raise_frame
543
+
544
+ ##
545
+ elisp_alias :lower, :lower_frame
592
546
 
593
547
  private
594
548
 
595
- def get_parameter(parameter)
596
- call_on_self :frame_parameter, parameter
597
- end
549
+ ##
550
+ elisp_alias 'get_parameter(parameter)', 'frame_parameter, parameter'
598
551
 
599
552
  def set_parameter(parameter, new_value)
600
553
  alist = Cons.new(Cons.new(parameter, new_value), nil)
@@ -605,332 +558,390 @@ module Relisp
605
558
 
606
559
  ######### begin frame parameters
607
560
 
608
- #
609
- def display
610
- get_parameter :display
611
- end
612
-
613
- def display=(new_value)
614
- set_parameter :display, new_value
615
- end
616
-
617
- def display_type
618
- get_parameter :display_type
619
- end
620
-
621
- def display_type=(new_value)
622
- set_parameter :display_type, new_value
623
- end
624
-
625
- def title
626
- get_parameter :title
627
- end
628
-
629
- def title=(new_value)
630
- set_parameter :title, new_value
631
- end
632
-
633
- def name
634
- get_parameter :name, new_value
635
- end
636
-
637
- def name=(new_value)
638
- set_parameter :name, new_value
639
- end
640
-
641
- def left
642
- get_parameter :left
643
- end
644
-
645
- def left=(new_value)
646
- set_parameter :left, new_value
561
+ def self.param_reader name
562
+ class_eval <<-EOM
563
+ def #{name}
564
+ get_parameter :#{name}
565
+ end
566
+ EOM
647
567
  end
648
568
 
649
- def top
650
- get_parameter :top
651
- end
569
+ def self.param_writer name
570
+ class_eval <<-EOM
571
+ def #{name}=(new_value)
572
+ set_parameter :#{name}, new_value
573
+ end
574
+ EOM
575
+ end
576
+
577
+ # all of this could be a lot slicker, but for the sake of RDoc
578
+ # it's not
579
+
580
+ ##
581
+ param_reader :display
582
+
583
+ ##
584
+ # :method: display=
585
+ # :call-seq:
586
+ # display=(new_value)
587
+ param_writer :display
588
+
589
+ ##
590
+ param_reader :display_type
591
+
592
+ ##
593
+ # :method: display_type=
594
+ # :call-seq:
595
+ # display_type=(new_value)
596
+ param_writer :display_type
597
+
598
+ ##
599
+ param_reader :title
600
+
601
+ ##
602
+ # :method: title=
603
+ # :call-seq:
604
+ # title=(new_value)
605
+ param_writer :title
606
+
607
+ ##
608
+ param_reader :name
609
+
610
+ ##
611
+ # :method: name=
612
+ # :call-seq:
613
+ # name=(new_value)
614
+ param_writer :name
615
+
616
+ ##
617
+ param_reader :left
618
+
619
+ ##
620
+ # :method: left=
621
+ # :call-seq:
622
+ # left=(new_value)
623
+ param_writer :left
624
+
625
+ ##
626
+ param_reader :top
627
+
628
+ ##
629
+ # :method: top=
630
+ # :call-seq:
631
+ # top=(new_value)
632
+ param_writer :top
633
+
634
+ ##
635
+ param_reader :height
636
+
637
+ ##
638
+ # :method: height=
639
+ # :call-seq:
640
+ # height=(new_value)
641
+ param_writer :height
642
+
643
+ ##
644
+ param_reader :width
645
+
646
+ ##
647
+ # :method: width=
648
+ # :call-seq:
649
+ # width=(new_value)
650
+ param_writer :width
651
+
652
+ ##
653
+ param_reader :fullscreen
654
+
655
+ ##
656
+ # :method: fullscreen=
657
+ # :call-seq:
658
+ # fullscreen=(new_value)
659
+ param_writer :fullscreen
660
+
661
+ ##
662
+ param_reader :border_width
663
+
664
+ ##
665
+ # :method: border_width=
666
+ # :call-seq:
667
+ # border_width=(new_value)
668
+ param_writer :border_width
669
+
670
+ ##
671
+ param_reader :internal_border_width
672
+
673
+ ##
674
+ # :method: internal_border_width=
675
+ # :call-seq:
676
+ # internal_border_width=(new_value)
677
+ param_writer :internal_border_width
678
+
679
+ ##
680
+ param_reader :vertical_scroll_bars
681
+
682
+ ##
683
+ # :method: vertical_scroll_bars=
684
+ # :call-seq:
685
+ # vertical_scroll_bars=(new_value)
686
+ param_writer :vertical_scroll_bars
652
687
 
653
- def top=(new_value)
654
- set_parameter :top, new_value
655
- end
656
-
657
- def height
658
- get_parameter :height
659
- end
688
+ ##
689
+ param_reader :scroll_bar_width
690
+
691
+ ##
692
+ # :method: scroll_bar_width=
693
+ # :call-seq:
694
+ # scroll_bar_width=(new_value)
695
+ param_writer :scroll_bar_width
696
+
697
+ ##
698
+ param_reader :left_fringe
699
+
700
+ ##
701
+ # :method: left_fringe=
702
+ # :call-seq:
703
+ # left_fringe=(new_value)
704
+ param_writer :left_fringe
705
+
706
+ ##
707
+ param_reader :right_fringe
708
+
709
+ ##
710
+ # :method: right_fringe=
711
+ # :call-seq:
712
+ # right_fringe=(new_value)
713
+ param_writer :right_fringe
714
+
715
+ ##
716
+ param_reader :menu_bar_lines
717
+
718
+ ##
719
+ # :method: menu_bar_lines=
720
+ # :call-seq:
721
+ # menu_bar_lines=(new_value)
722
+ param_writer :menu_bar_lines
660
723
 
661
- def height=(new_value)
662
- set_parameter :height, new_value
663
- end
664
-
665
- def width
666
- get_parameter :width
667
- end
668
-
669
- def width=(new_value)
670
- set_parameter :width, new_value
671
- end
672
-
673
- def fullscreen
674
- get_parameter :fullscreen
675
- end
676
-
677
- def fullscreen=(new_value)
678
- set_parameter :fullscreen, new_value
679
- end
680
-
681
- def border_width
682
- get_parameter :border_width
683
- end
684
-
685
- def border_width=(new_value)
686
- set_parameter :border_width, new_value
687
- end
688
-
689
- def internal_border_width
690
- get_parameter :internal_border_width
691
- end
692
-
693
- def internal_border_width=(new_value)
694
- set_parameter :internal_border_width, new_value
695
- end
696
-
697
- def vertical_scroll_bars
698
- get_parameter :vertical_scroll_bars
699
- end
700
-
701
- def vertical_scroll_bars=(new_value)
702
- set_parameter :vertical_scroll_bars, new_value
703
- end
724
+ ##
725
+ param_reader :tool_bar_lines
726
+
727
+ ##
728
+ # :method: tool_bar_lines=
729
+ # :call-seq:
730
+ # tool_bar_lines=(new_value)
731
+ param_writer :tool_bar_lines
704
732
 
705
- def scroll_bar_width
706
- get_parameter :scroll_bar_width
707
- end
708
-
709
- def scroll_bar_width=(new_value)
710
- set_parameter :scroll_bar_width, new_value
711
- end
712
-
713
- def left_fringe
714
- get_parameter :left_fringe
715
- end
716
-
717
- def left_fringe=(new_value)
718
- set_parameter :left_fringe, new_value
719
- end
720
-
721
- def right_fringe
722
- get_parameter :right_fringe
723
- end
724
-
725
- def right_fringe=(new_value)
726
- set_parameter :right_fringe, new_value
727
- end
728
-
729
- def menu_bar_lines
730
- get_parameter :menu_bar_lines
731
- end
732
-
733
- def menu_bar_lines=(new_value)
734
- set_parameter :menu_bar_lines, new_value
735
- end
733
+ ##
734
+ param_reader :line_spacing
735
+
736
+ ##
737
+ # :method: line_spacing=
738
+ # :call-seq:
739
+ # line_spacing=(new_value)
740
+ param_writer :line_spacing
736
741
 
737
- def tool_bar_lines
738
- get_parameter :tool_bar_lines
739
- end
740
-
741
- def tool_bar_lines=(new_value)
742
- set_parameter :tool_bar_lines, new_value
743
- end
742
+ ##
743
+ param_reader :minibuffer
744
+
745
+ ##
746
+ # :method: minibuffer=
747
+ # :call-seq:
748
+ # minibuffer=(new_value)
749
+ param_writer :minibuffer
744
750
 
745
- def line_spacing
746
- get_parameter :line_spacing
747
- end
748
-
749
- def line_spacing=(new_value)
750
- set_parameter :line_spacing, new_value
751
- end
751
+ ##
752
+ param_reader :unsplittable
753
+
754
+ ##
755
+ # :method: unsplittable=
756
+ # :call-seq:
757
+ # unsplittable=(new_value)
758
+ param_writer :unsplittable
759
+
760
+ ##
761
+ param_reader :visibility
762
+
763
+ ##
764
+ # :method: visibility=
765
+ # :call-seq:
766
+ # visibility=(new_value)
767
+ param_writer :visibility
752
768
 
753
- def minibuffer
754
- get_parameter :minibuffer
755
- end
756
-
757
- def minibuffer=(new_value)
758
- set_parameter :minibuffer, new_value
759
- end
769
+ ##
770
+ param_reader :auto_raise
771
+
772
+ ##
773
+ # :method: auto_raise=
774
+ # :call-seq:
775
+ # auto_raise=(new_value)
776
+ param_writer :auto_raise
777
+
778
+ ##
779
+ param_reader :auto_lower
780
+
781
+ ##
782
+ # :method: auto_lower=
783
+ # :call-seq:
784
+ # auto_lower=(new_value)
785
+ param_writer :auto_lower
786
+
787
+ ##
788
+ param_reader :icon_type
789
+
790
+ ##
791
+ # :method: icon_type=
792
+ # :call-seq:
793
+ # icon_type=(new_value)
794
+ param_writer :icon_type
760
795
 
761
- def unsplittable
762
- get_parameter :unsplittable
763
- end
764
-
765
- def unsplittable=(new_value)
766
- set_parameter :unsplittable, new_value
767
- end
768
-
769
- def visibility
770
- get_parameter :visibility
771
- end
772
-
773
- def visibility=(new_value)
774
- set_parameter :visibility, new_value
775
- end
796
+ ##
797
+ param_reader :icon_name
798
+
799
+ ##
800
+ # :method: icon_name=
801
+ # :call-seq:
802
+ # icon_name=(new_value)
803
+ param_writer :icon_name
776
804
 
777
- def auto_raise
778
- get_parameter :auto_raise
779
- end
780
-
781
- def auto_raise=(new_value)
782
- set_parameter :auto_raise, new_value
783
- end
784
-
785
- def auto_lower
786
- get_parameter :auto_lower
787
- end
788
-
789
- def auto_lower=(new_value)
790
- set_parameter :auto_lower, new_value
791
- end
792
-
793
- def icon_type
794
- get_parameter :icon_type
795
- end
796
-
797
- def icon_type=(new_value)
798
- set_parameter :icon_type, new_value
799
- end
805
+ ##
806
+ param_reader :window_id
807
+
808
+ ##
809
+ # :method: window_id=
810
+ # :call-seq:
811
+ # window_id=(new_value)
812
+ param_writer :window_id
800
813
 
801
- def icon_name
802
- get_parameter :icon_name
803
- end
804
-
805
- def icon_name=(new_value)
806
- set_parameter :icon_name, new_value
807
- end
814
+ ##
815
+ param_reader :outer_window_id
816
+
817
+ ##
818
+ # :method: outer_window_id=
819
+ # :call-seq:
820
+ # outer_window_id=(new_value)
821
+ param_writer :outer_window_id
808
822
 
809
- def window_id
810
- get_parameter :window_id
811
- end
812
-
813
- def window_id=(new_value)
814
- set_parameter :window_id, new_value
815
- end
816
-
817
- def outer_window_id
818
- get_parameter :outer_window_id
819
- end
820
-
821
- def outer_window_id=(new_value)
822
- set_parameter :outer_window_id, new_value
823
- end
823
+ ##
824
+ param_reader :wait_for_wm
825
+
826
+ ##
827
+ # :method: wait_for_wm=
828
+ # :call-seq:
829
+ # wait_for_wm=(new_value)
830
+ param_writer :wait_for_wm
824
831
 
825
- def wait_for_wm
826
- get_parameter :wait_for_wm
827
- end
828
-
829
- def wait_for_wm=(new_value)
830
- set_parameter :wait_for_wm, new_value
831
- end
832
+ ##
833
+ param_reader :cursor_type
834
+
835
+ ##
836
+ # :method: cursor_type=
837
+ # :call-seq:
838
+ # cursor_type=(new_value)
839
+ param_writer :cursor_type
832
840
 
833
- def cursor_type
834
- get_parameter :cursor_type
835
- end
836
-
837
- def cursor_type=(new_value)
838
- set_parameter :cursor_type, new_value
839
- end
840
-
841
- def background_mode
842
- get_parameter :background_mode
843
- end
844
-
845
- def background_mode=(new_value)
846
- set_parameter :background_mode, new_value
847
- end
848
-
849
- def tty_color_mode
850
- get_parameter :tty_color_mode
851
- end
852
-
853
- def tty_color_mode=(new_value)
854
- set_parameter :tty_color_mode, new_value
855
- end
856
-
857
- def screen_gamma
858
- get_parameter :screen_gamma
859
- end
860
-
861
- def screen_gamma=(new_value)
862
- set_parameter :screen_gamma, new_value
863
- end
864
-
865
- def font
866
- get_parameter :font
867
- end
868
-
869
- def font=(new_value)
870
- set_parameter :font, new_value
871
- end
872
-
873
- def foreground_color
874
- get_parameter :foreground_color
875
- end
876
-
877
- def foreground_color=(new_value)
878
- set_parameter :foreground_color, new_value
879
- end
880
-
881
- def background_color
882
- get_parameter :background_color
883
- end
884
-
885
- def background_color=(new_value)
886
- set_parameter :background_color, new_value
887
- end
888
-
889
- def mouse_color
890
- get_parameter :mouse_color
891
- end
892
-
893
- def mouse_color=(new_value)
894
- set_parameter :mouse_color, new_value
895
- end
896
-
897
- def cursor_color
898
- get_parameter :cursor_color
899
- end
900
-
901
- def cursor_color=(new_value)
902
- set_parameter :cursor_color, new_value
903
- end
904
-
905
- def border_color
906
- get_parameter :border_color
907
- end
908
-
909
- def border_color=(new_value)
910
- set_parameter :border_color, new_value
911
- end
912
-
913
- def scroll_bar_foreground
914
- get_parameter :scroll_bar_foreground
915
- end
916
-
917
- def scroll_bar_foreground=(new_value)
918
- set_parameter :scroll_bar_foreground, new_value
919
- end
920
-
921
- def scroll_bar_background
922
- get_parameter :scroll_bar_background
923
- end
924
-
925
- def scroll_bar_background=(new_value)
926
- set_parameter :scroll_bar_background, new_value
927
- end
841
+ ##
842
+ param_reader :background_mode
843
+
844
+ ##
845
+ # :method: background_mode=
846
+ # :call-seq:
847
+ # background_mode=(new_value)
848
+ param_writer :background_mode
849
+
850
+ ##
851
+ param_reader :tty_color_mode
852
+
853
+ ##
854
+ # :method: tty_color_mode=
855
+ # :call-seq:
856
+ # tty_color_mode=(new_value)
857
+ param_writer :tty_color_mode
858
+
859
+ ##
860
+ param_reader :screen_gamma
861
+
862
+ ##
863
+ # :method: screen_gamma=
864
+ # :call-seq:
865
+ # screen_gamma=(new_value)
866
+ param_writer :screen_gamma
867
+
868
+ ##
869
+ param_reader :font
870
+
871
+ ##
872
+ # :method: font=
873
+ # :call-seq:
874
+ # font=(new_value)
875
+ param_writer :font
876
+
877
+ ##
878
+ param_reader :foreground_color
879
+
880
+ ##
881
+ # :method: foreground_color=
882
+ # :call-seq:
883
+ # foreground_color=(new_value)
884
+ param_writer :foreground_color
885
+
886
+ ##
887
+ param_reader :background_color
888
+
889
+ ##
890
+ # :method: background_color=
891
+ # :call-seq:
892
+ # background_color=(new_value)
893
+ param_writer :background_color
894
+
895
+ ##
896
+ param_reader :mouse_color
897
+
898
+ ##
899
+ # :method: mouse_color=
900
+ # :call-seq:
901
+ # mouse_color=(new_value)
902
+ param_writer :mouse_color
903
+
904
+ ##
905
+ param_reader :cursor_color
906
+
907
+ ##
908
+ # :method: cursor_color=
909
+ # :call-seq:
910
+ # cursor_color=(new_value)
911
+ param_writer :cursor_color
912
+
913
+ ##
914
+ param_reader :border_color
915
+
916
+ ##
917
+ # :method: border_color=
918
+ # :call-seq:
919
+ # border_color=(new_value)
920
+ param_writer :border_color
921
+
922
+ ##
923
+ param_reader :scroll_bar_foreground
924
+
925
+ ##
926
+ # :method: scroll_bar_foreground=
927
+ # :call-seq:
928
+ # scroll_bar_foreground=(new_value)
929
+ param_writer :scroll_bar_foreground
930
+
931
+ ##
932
+ param_reader :scroll_bar_background
933
+
934
+ ##
935
+ # :method: scroll_bar_background=
936
+ # :call-seq:
937
+ # scroll_bar_background=(new_value)
938
+ param_writer :scroll_bar_background
928
939
 
929
940
  ######### end frame parameters
930
941
 
931
942
  end
932
943
 
933
- # A proxy to an Emacs window-configuration
944
+ # A proxy to an Emacs window-configuration
934
945
  #
935
946
  class WindowConfiguration < Proxy
936
947
 
@@ -942,12 +953,12 @@ module Relisp
942
953
  #
943
954
  def initialize(*args)
944
955
  super do
945
- raise ArgumentError, "Cannot create WindowConfiguration using 'new' method."
956
+ raise ArgumentError, "Cannot create WindowConfiguration proxy without existing elisp variable."
946
957
  end
947
958
  end
948
959
  end
949
960
 
950
- # A proxy to an Emacs process
961
+ # A proxy to an Emacs process
951
962
  #
952
963
  class Process < Proxy
953
964
 
@@ -959,24 +970,21 @@ module Relisp
959
970
  #
960
971
  def initialize(*args)
961
972
  super do
962
- raise ArgumentError, "Cannot create Process using 'new' method."
973
+ raise ArgumentError, "Cannot create Process proxy without existing elisp variable."
963
974
  end
964
975
  end
965
-
966
- def name
967
- call_on_self :process_name
968
- end
969
976
 
970
- def status
971
- call_on_self :process_status
972
- end
977
+ ##
978
+ elisp_alias :name, :process_name
973
979
 
974
- def exit_status
975
- call_on_self :process_exit_status
976
- end
980
+ ##
981
+ elisp_alias :status, :process_status
982
+
983
+ ##
984
+ elisp_alias :exit_status, :process_exit_status
977
985
  end
978
986
 
979
- # A proxy to an Emacs Overlay
987
+ # A proxy to an Emacs Overlay
980
988
  #
981
989
  class Overlay < Proxy
982
990
 
@@ -991,38 +999,31 @@ module Relisp
991
999
  # overlay is created (<tt>make-overlay</tt>).
992
1000
  #
993
1001
  def initialize(*args)
994
- super do |args|
995
- @slave.elisp_exec( "(setq #{@elisp_variable} (make-overlay #{args.join(' ')}))" )
1002
+ super do |sargs|
1003
+ @slave.elisp_exec( "(setq #{@elisp_variable} (make-overlay #{sargs.join(' ')}))" )
996
1004
  end
997
1005
  end
998
1006
 
999
- def start
1000
- call_on_self :overlay_start
1001
- end
1007
+ ##
1008
+ elisp_alias :start, :overlay_start
1002
1009
 
1003
- def end
1004
- call_on_self :overlay_end
1005
- end
1010
+ ##
1011
+ elisp_alias :end, :overlay_end
1006
1012
 
1007
- def buffer
1008
- call_on_self :overlay_buffer
1009
- end
1013
+ ##
1014
+ elisp_alias :buffer, :overlay_buffer
1010
1015
 
1011
- def delete
1012
- call_on_self :delete_overlay
1013
- end
1016
+ ##
1017
+ elisp_alias :delete, :delete_overlay
1014
1018
 
1015
- def move(new_start, new_end, new_buffer = nil)
1016
- call_on_self :move_overlay, new_start, new_end, new_buffer
1017
- end
1019
+ ##
1020
+ elisp_alias "move(new_start, new_end, new_buffer = nil)", "move_overlay, new_start, new_end, new_buffer"
1018
1021
 
1019
- def start=(new_start)
1020
- call_on_self :move_overlay, new_start, self.end
1021
- end
1022
+ ##
1023
+ elisp_alias "start=(new_start)", "move_overlay, new_start, self.end"
1022
1024
 
1023
- def end=(new_end)
1024
- call_on_self :move_overlay, self.start, new_end
1025
- end
1025
+ ##
1026
+ elisp_alias "end=(new_end)", "move_overlay, self.start, new_end"
1026
1027
 
1027
1028
  private
1028
1029
 
@@ -1036,141 +1037,174 @@ module Relisp
1036
1037
 
1037
1038
  public
1038
1039
 
1039
- def priority
1040
- get_property :priority
1041
- end
1042
-
1043
- def priority=(new_value)
1044
- set_property :priority, new_value
1045
- end
1046
-
1047
- def window
1048
- get_property :window
1049
- end
1050
-
1051
- def window=(new_value)
1052
- set_property :window, new_value
1040
+ def self.prop_reader name
1041
+ class_eval <<-EOM
1042
+ def #{name}
1043
+ get_property :#{name}
1044
+ end
1045
+ EOM
1053
1046
  end
1054
1047
 
1055
- def category
1056
- get_property :category
1048
+ def self.prop_writer name
1049
+ class_eval <<-EOM
1050
+ def #{name}=(new_value)
1051
+ set_property :#{name}, new_value
1052
+ end
1053
+ EOM
1057
1054
  end
1058
1055
 
1059
- def category=(new_value)
1060
- set_property :category, new_value
1061
- end
1056
+ ##
1057
+ prop_reader :priority
1058
+
1059
+ ##
1060
+ # :method: priority=
1061
+ # :call-seq:
1062
+ # priority=(new_value)
1063
+ prop_writer :priority
1064
+
1065
+ ##
1066
+ prop_reader :window
1067
+
1068
+ ##
1069
+ # :method: window=
1070
+ # :call-seq:
1071
+ # window=(new_value)
1072
+ prop_writer :window
1073
+
1074
+ ##
1075
+ prop_reader :category
1076
+
1077
+ ##
1078
+ # :method: category=
1079
+ # :call-seq:
1080
+ # category=(new_value)
1081
+ prop_writer :category
1062
1082
 
1063
- def face
1064
- get_property :face
1065
- end
1066
-
1067
- def face=(new_value)
1068
- set_property :face, new_value
1069
- end
1070
-
1071
- def mouse_face
1072
- get_property :mouse_face
1073
- end
1083
+ ##
1084
+ prop_reader :face
1074
1085
 
1075
- def mouse_face=(new_value)
1076
- set_property :mouse_face, new_value
1077
- end
1078
-
1079
- def display
1080
- get_property :display
1081
- end
1082
-
1083
- def display=(new_value)
1084
- set_property :display, new_value
1085
- end
1086
-
1087
- def help_echo
1088
- get_property :help_echo
1089
- end
1090
-
1091
- def help_echo=(new_value)
1092
- set_property :help_echo, new_value
1093
- end
1094
-
1095
- def modification_hooks
1096
- get_property :help_echo
1097
- end
1098
-
1099
- def modification_hooks=(new_value)
1100
- set_property :help_echo, new_value
1101
- end
1102
-
1103
- def insert_in_front_hooks
1104
- get_property :insert_in_front_hooks
1105
- end
1106
-
1107
- def insert_in_front_hooks=(new_value)
1108
- set_property :insert_in_front_hooks, new_value
1109
- end
1110
-
1111
- def insert_behind_hooks
1112
- get_property :insert_behind_hooks
1113
- end
1114
-
1115
- def insert_behind_hooks=(new_value)
1116
- set_property :insert_behind_hooks, new_value
1117
- end
1118
-
1119
- def invisible
1120
- get_property :invisible
1121
- end
1122
-
1123
- def invisible=(new_value)
1124
- set_property :invisible, new_value
1125
- end
1126
-
1127
- def intangible
1128
- get_property :intangible
1129
- end
1130
-
1131
- def intangible=(new_value)
1132
- set_property :intangible, new_value
1133
- end
1134
-
1135
- def before_string
1136
- get_property :before_string
1137
- end
1138
-
1139
- def before_string=(new_value)
1140
- set_property :before_string, new_value
1141
- end
1142
-
1143
- def after_string
1144
- get_property :after_string
1145
- end
1146
-
1147
- def after_string=(new_value)
1148
- set_property :after_string, new_value
1149
- end
1150
-
1151
- def evaporate
1152
- get_property :evaporate
1153
- end
1154
-
1155
- def evaporate=(new_value)
1156
- set_property :evaporate, new_value
1157
- end
1158
-
1159
- def local_map
1160
- get_property :local_map
1161
- end
1162
-
1163
- def local_map=(new_value)
1164
- set_property :local_map, new_value
1165
- end
1166
-
1167
- def keymap
1168
- get_property :keymap
1169
- end
1170
-
1171
- def keymap=(new_value)
1172
- set_property :keymap, new_value
1173
- end
1086
+ ##
1087
+ # :method: face=
1088
+ # :call-seq:
1089
+ # face=(new_value)
1090
+ prop_writer :face
1091
+
1092
+ ##
1093
+ prop_reader :mouse_face
1094
+
1095
+ ##
1096
+ # :method: mouse_face=
1097
+ # :call-seq:
1098
+ # mouse_face=(new_value)
1099
+ prop_writer :mouse_face
1100
+
1101
+ ##
1102
+ prop_reader :display
1103
+
1104
+ ##
1105
+ # :method: display=
1106
+ # :call-seq:
1107
+ # display=(new_value)
1108
+ prop_writer :display
1109
+
1110
+ ##
1111
+ prop_reader :help_echo
1112
+
1113
+ ##
1114
+ # :method: help_echo=
1115
+ # :call-seq:
1116
+ # help_echo=(new_value)
1117
+ prop_writer :help_echo
1118
+
1119
+ ##
1120
+ prop_reader :modification_hooks
1121
+
1122
+ ##
1123
+ # :method: modification_hooks=
1124
+ # :call-seq:
1125
+ # modification_hooks=(new_value)
1126
+ prop_writer :modification_hooks
1127
+
1128
+ ##
1129
+ prop_reader :insert_in_front_hooks
1130
+
1131
+ ##
1132
+ # :method: insert_in_front_hooks=
1133
+ # :call-seq:
1134
+ # insert_in_front_hooks=(new_value)
1135
+ prop_writer :insert_in_front_hooks
1136
+
1137
+ ##
1138
+ prop_reader :insert_behind_hooks
1139
+
1140
+ ##
1141
+ # :method: insert_behind_hooks=
1142
+ # :call-seq:
1143
+ # insert_behind_hooks=(new_value)
1144
+ prop_writer :insert_behind_hooks
1145
+
1146
+ ##
1147
+ prop_reader :invisible
1148
+
1149
+ ##
1150
+ # :method: invisible=
1151
+ # :call-seq:
1152
+ # invisible=(new_value)
1153
+ prop_writer :invisible
1154
+
1155
+ ##
1156
+ prop_reader :intangible
1157
+
1158
+ ##
1159
+ # :method: intangible=
1160
+ # :call-seq:
1161
+ # intangible=(new_value)
1162
+ prop_writer :intangible
1163
+
1164
+ ##
1165
+ prop_reader :before_string
1166
+
1167
+ ##
1168
+ # :method: before_string=
1169
+ # :call-seq:
1170
+ # before_string=(new_value)
1171
+ prop_writer :before_string
1172
+
1173
+ ##
1174
+ prop_reader :after_string
1175
+
1176
+ ##
1177
+ # :method: after_string=
1178
+ # :call-seq:
1179
+ # after_string=(new_value)
1180
+ prop_writer :after_string
1181
+
1182
+ ##
1183
+ prop_reader :evaporate
1184
+
1185
+ ##
1186
+ # :method: evaporate=
1187
+ # :call-seq:
1188
+ # evaporate=(new_value)
1189
+ prop_writer :evaporate
1190
+
1191
+ ##
1192
+ prop_reader :local_map
1193
+
1194
+ ##
1195
+ # :method: local_map=
1196
+ # :call-seq:
1197
+ # local_map=(new_value)
1198
+ prop_writer :local_map
1199
+
1200
+ ##
1201
+ prop_reader :keymap
1202
+
1203
+ ##
1204
+ # :method: keymap=
1205
+ # :call-seq:
1206
+ # keymap=(new_value)
1207
+ prop_writer :keymap
1174
1208
 
1175
1209
  end
1176
1210