define(function (require, exports, module) {
    "use strict";

    var oop = require("../lib/oop");
    var lang = require("../lib/lang");
    var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;

    var LuceneHighlightRules = function () {
        this.$rules = {
            "start": [
                {
                    token: "constant.character.negation",
                    regex: "[\\-]"
                }, {
                    token: "constant.character.interro",
                    regex: "[\\?]"
                }, {
                    token: "constant.character.asterisk",
                    regex: "[\\*]"
                }, {
                    token: 'constant.character.proximity',
                    regex: '~[0-9]+\\b'
                }, {
                    token: 'keyword.operator',
                    regex: '(?:AND|OR|NOT)\\b'
                }, {
                    token: "paren.lparen",
                    regex: "[\\(]"
                }, {
                    token: "paren.rparen",
                    regex: "[\\)]"
                }, {
                    token: "keyword",
                    regex: "[\\S]+:"
                }, {
                    token: "string",           // " string
                    regex: '".*?"'
                }, {
                    token: "text",
                    regex: "\\s+"
                }
            ]
        };
    };

    oop.inherits(LuceneHighlightRules, TextHighlightRules);

    exports.LuceneHighlightRules = LuceneHighlightRules;
});
