Class: ReHighlightScanner
- Inherits:
-
HighlightScanner
- Object
- HighlightScanner
- ReHighlightScanner
- Defined in:
- ext/ae-editor/ae-editor.rb
Instance Method Summary collapse
- #find_tag(_tag, _row, _line_txt) ⇒ Object
- #highlight_tags(_row_begin, _code, _classes = self.classes) ⇒ Object
-
#initialize(_langs_conf) ⇒ ReHighlightScanner
constructor
A new instance of ReHighlightScanner.
Methods inherited from HighlightScanner
Constructor Details
#initialize(_langs_conf) ⇒ ReHighlightScanner
Returns a new instance of ReHighlightScanner.
3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 |
# File 'ext/ae-editor/ae-editor.rb', line 3625 def initialize(_langs_conf) super(_langs_conf) @h_re = Hash.new @op_to_end_line = Array.new @op_to_end_line.concat(@langs_conf['re_op.to_line_end'].split(',')) if @langs_conf['re_op.to_line_end'] @op_only_first = Array.new @op_only_first.concat(@langs_conf['re_op.only_first'].split(',')) if @langs_conf['re_op.only_first'] self.classes.each{|c| @h_re[c]=Regexp::new(@langs_conf["re.#{c}"].strip) if @langs_conf["re.#{c}"] } end |
Instance Method Details
#find_tag(_tag, _row, _line_txt) ⇒ Object
3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 |
# File 'ext/ae-editor/ae-editor.rb', line 3640 def find_tag(_tag, _row, _line_txt) _txt = _line_txt to_ret = [] _re = @h_re[_tag] m = _re.match(_txt) _end = 0 # index = _line_txt.index("oldaccel1") # stampa = index && index >0 # stampa=true # p "_line_txt=#{_line_txt}" if stampa # p "_tag=#{_tag}" if stampa while m && (_txt=m.post_match) if !defined?(_old_txt) || _txt != _old_txt b1 = _line_txt[m.begin(0)+_end-1..m.begin(0)+_end-1] b2 = _line_txt[m.begin(0)+_end..m.begin(0)+_end] e1 = _line_txt[m.end(0)+_end..m.end(0)+_end] e2 = _line_txt[m.end(0)-1+_end..m.end(0)+_end-1] achar = ["\s","\t","\n",nil,')',']','}','',':','=',">","<"] ok = (achar.include?(b1)||achar.include?(b2)) && (achar.include?(e1)||achar.include?(e2)) ok = ok || _line_txt[m.begin(0)+_end..m.end(0)+_end-1].strip.length==1 # p "" if stampa # p "_line_txt[m.begin(0)+_end..m.begin(0)+_end]=#{_line_txt[m.begin(0)+_end..m.begin(0)+_end]}" if stampa # p "_line_txt[m.end(0)+_end..m.end(0)+_end]=#{_line_txt[m.end(0)+_end..m.end(0)+_end]}" if stampa # p "_line_txt[m.begin(0)+_end..m.end(0)+_end]=#{_line_txt[m.begin(0)+_end..m.end(0)+_end]}" if stampa # p "ok=#{ok}" if stampa if ok _old_txt = _txt _ibegin = _row.to_s+'.'+(m.begin(0)+_end).to_s _end = m.end(0) + _end _iend = _row.to_s+'.'+(_end.to_s) to_ret << [_ibegin, _iend] end if @op_only_first.include?(_tag) && ok m = nil else m = _re.match(_txt) end else m = nil end end to_ret end |
#highlight_tags(_row_begin, _code, _classes = self.classes) ⇒ Object
3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 |
# File 'ext/ae-editor/ae-editor.rb', line 3689 def (_row_begin,_code,_classes=self.classes) super(_row_begin,_code) = Hash.new lines = _code.split("\n") lines.each_with_index{|_line,_i| _line+="\n" _row = _row_begin+_i #p "_row=#{_row}-_line=#{_line}" _txt = _line _end = 0 @op_to_end_line.each{|c| if _classes.include?(c) && @h_re[c] m_c = @h_re[c].match(_txt) if m_c then _ibegin = _row.to_s+'.'+(m_c.begin(0)).to_s _iend = _row.to_s+'.'+(_line.length - 1).to_s [c] = [] if [c].nil? [c] << [_ibegin, _iend] _txt = m_c.pre_match end end } if @langs_conf['re_op.to_line_end'] _classes.each{|c| if !@op_to_end_line.include?(c) && @h_re[c] = find_tag(c, _row, _txt) if .length >0 [c] = [] if [c].nil? [c].concat() end end } if _txt.strip.length > 0 } end |