• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 76,  comments - 621,  trackbacks - 0

            終于忍不住了,要為Megax加上語(yǔ)法加亮,我在正則還是lex上徘徊了大半年,始終沒(méi)有找到比較好的方法,一個(gè)編輯器如果支持非常嚴(yán)格的語(yǔ)法加亮的話(huà),那么可配置性是相當(dāng)?shù)牟畹摹O駍cintilla,你必須得寫(xiě)個(gè)lex針對(duì)某種特定的語(yǔ)言才行。當(dāng)然大多數(shù)的語(yǔ)言都有一些共性,比如你可以用c語(yǔ)言的語(yǔ)法文件去渲染java或者c#的。但是我不想這么做,我想要傻瓜也可以進(jìn)行配置文件的編寫(xiě),像Editplus,但是Editplus做的不夠好。

            目前完成了塊狀代碼的識(shí)別,這是最關(guān)鍵的,什么是塊狀的呢,主要是下面這三種:

            1.注釋(單行,多行)
            2.字符串(可續(xù)行或者不可)
            3.子語(yǔ)言

            對(duì)于子語(yǔ)言這一塊,c++里面可以嵌入asm,html里面可以嵌入css和js,像這樣的語(yǔ)言,我把它定義成子語(yǔ)言。但是子語(yǔ)言不可嵌套,在Megax里面我不處理嵌套的子語(yǔ)言(PS:誰(shuí)他媽的有病啊,這么寫(xiě))。

            完成上面這些,在遇到子語(yǔ)言的時(shí)候,只需要切換當(dāng)前的schema就可以完成子語(yǔ)言的語(yǔ)法加亮,同時(shí)Megax定死了,最多支持4種sub language.

            識(shí)別完之后,在用正則分別進(jìn)行細(xì)節(jié)匹配,比如c++里面里面的#[多個(gè)空格]include和#[無(wú)空格]include都是關(guān)鍵字,或者注釋里面含有email地址之類(lèi)的。

            在進(jìn)行行跳轉(zhuǎn)的時(shí)候,我們不需要識(shí)別這些,只需要識(shí)別塊狀的代碼,所以效率是非常的高,在我的機(jī)器上打開(kāi)100萬(wàn)行的代碼,跳轉(zhuǎn)到任意一行,均十分的流暢。

            先寫(xiě)這么多了,下面這張截圖暫時(shí)沒(méi)有子語(yǔ)言的支持,上班時(shí)間偷偷寫(xiě)的啊。

            另外高速自動(dòng)換行基本實(shí)現(xiàn)了,效率和內(nèi)存占用讓我很滿(mǎn)意,基本上沒(méi)有明顯的延遲,小勝Editplus。

            最近下了EMEditor的最新版本,EM做的是越來(lái)越強(qiáng)大了,基礎(chǔ)功能和架構(gòu)我覺(jué)得應(yīng)該是目前最棒的編輯器。在打開(kāi)超大文件的時(shí)候,用內(nèi)存映射之后,剩下的內(nèi)存占用主要是行信息。在編輯的時(shí)候,我一直認(rèn)為內(nèi)存映射會(huì)非常的慢,看來(lái)我需要重新審視一下。思路就是這樣的,EM加載大文件的時(shí)候會(huì)啟動(dòng)一個(gè)新的線(xiàn)程,線(xiàn)程的同步著實(shí)是個(gè)大問(wèn)題,不是我擅長(zhǎng)的啊。。。。

            周四回國(guó)了,好高興,回去要大吃一頓,想死我了。


            posted on 2008-06-23 18:17 megax 閱讀(2007) 評(píng)論(4)  編輯 收藏 引用

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久久久亚洲av无码专区喷水| 久久精品国产亚洲AV香蕉| 久久精品国产精品国产精品污| 欧美伊香蕉久久综合类网站| 久久亚洲色一区二区三区| 久久伊人精品一区二区三区| 久久久久99精品成人片欧美| 性做久久久久久久久久久| 99久久婷婷免费国产综合精品| 亚洲精品tv久久久久| 久久综合九色综合欧美狠狠| 77777亚洲午夜久久多喷| 久久99精品久久久久久野外| 日韩乱码人妻无码中文字幕久久| 久久有码中文字幕| 久久综合久久综合久久综合| 久久成人小视频| 亚洲精品国产自在久久| 99国内精品久久久久久久| 伊人久久大香线蕉AV色婷婷色| 久久综合亚洲色HEZYO国产| 久久伊人精品青青草原高清| aaa级精品久久久国产片| 一本久久a久久精品亚洲| 亚洲国产成人久久精品99| 国产农村妇女毛片精品久久| 国产成人综合久久综合| 精品熟女少妇a∨免费久久| 国产A级毛片久久久精品毛片| 无码人妻少妇久久中文字幕| 精品人妻伦九区久久AAA片69| 亚洲国产精品婷婷久久| 精品久久久久久国产| 久久久久久免费一区二区三区| 久久夜色精品国产噜噜麻豆| AV狠狠色丁香婷婷综合久久| 久久亚洲日韩精品一区二区三区| 久久妇女高潮几次MBA| 一本久久a久久精品vr综合| 久久久久人妻精品一区| 国产午夜精品久久久久免费视|