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.
3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 |
# File 'ext/ae-editor/ae-editor.rb', line 3726 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
3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 |
# File 'ext/ae-editor/ae-editor.rb', line 3741 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
3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 |
# File 'ext/ae-editor/ae-editor.rb', line 3790 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 |