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

  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  |  返信
スポンサーリンク