[質問]編集モードの正規表現指定について

  1. 編集モードが作成できるので、用意されていない言語(今はScala)の編集モードを作成しようと思っています。

    「強調文字列」に正企業現というオプションがありますが、以下のような条件は指定できないのでしょうか。
    ・左側に特定の文字列があった場合、次の文字列の色を変更する
      例) object ClassName
            object 部分については別の色が指定されているので、
            ClassNameの部分を別の色にしたい

     |  rabitarochan  |  返信
  2. 失礼します。ご参考までに。

    Scala

    object ClassName

    たとえば…、
      編集モードのプロパティ
        大文字小文字を区別
        正規表現
        強調3

    シンプルなら、
    (?<=object\s)[^\s{]+

    このくらいに…

    object HelloWorld { 
      def display() = println("Hello World")
    }
    HelloWorld.display() // "Hello World"

    もう少しなら、
    (?<=object\s|package\s)(?!object)[^\s{]+

    このようなものにも…

    package com
    package object example {
      val name = "com.example package object"
      def p(str: String) = println(str)
    }
    package example {
      object Main extends Application {
        p(name)
      }
    }
    package example2 {
      import com.example._
      object Main extends Application {
        p(name)
      }
    }  

    上のコード例は、こちらから引用させていただきました。
    http://d.hatena.ne.jp/seratch2/20110428/1303999721

     |  もいすん  |  返信
  3. はじめまして。返信ありがとうございます!

    > (?<=object\s)[^\s{]+

    (?<= で始まる正規表現を初めて見たので調べてみたら、先読み/後読みという表現みたいですね。
    これを応用すれば、想定している表現ができそうです!ありがとうございました!
    # これを機に正規表現をしっかり勉強したいと思います!

    先読み/後読みを知った資料は以下のURLです。
    Meryでは正規表現ライブラリには鬼車を利用しているので、このページを参考に作ってみたいと思います!

    http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt

     |  rabitarochan  |  返信
スポンサーリンク