diff --git a/editors/textadept/README.txt b/editors/textadept/README.txt
deleted file mode 100755
index 3227334..0000000
--- a/editors/textadept/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This is the reference implementation of an editor integration for Dscanner.
-
-Textadept can be downloaded at http://foicica.com/textadept/
diff --git a/editors/textadept/modules/dmd/class.xpm b/editors/textadept/modules/dmd/class.xpm
deleted file mode 100755
index e9eba4f..0000000
--- a/editors/textadept/modules/dmd/class.xpm
+++ /dev/null
@@ -1,60 +0,0 @@
-/* XPM */
-static char * class_xpm[] = {
-"16 16 41 1",
-" c None",
-". c #010100",
-"+ c #020100",
-"@ c #BA1DBA",
-"# c #C120C1",
-"$ c #BA1CBA",
-"% c #C824C8",
-"& c #D229D2",
-"* c #C724C7",
-"= c #B91CB9",
-"- c #010000",
-"; c #AE16AE",
-"> c #BF1FBF",
-", c #D129D1",
-"' c #E231E2",
-") c #E131E1",
-"! c #D028D0",
-"~ c #AD16AD",
-"{ c #DF2FDF",
-"] c #DE2FDE",
-"^ c #CF28CF",
-"/ c #BE1EBE",
-"( c #AC15AC",
-"_ c #A813A8",
-": c #B71BB7",
-"< c #C622C5",
-"[ c #CE27CF",
-"} c #CE27CE",
-"| c #C522C5",
-"1 c #A713A7",
-"2 c #000000",
-"3 c #9E0E9E",
-"4 c #BD1EBD",
-"5 c #BC1EBC",
-"6 c #B61AB6",
-"7 c #AC15AB",
-"8 c #A612A6",
-"9 c #AB15AB",
-"0 c #9E0E9D",
-"a c #960A96",
-"b c #990C99",
-" ",
-" ",
-" ",
-" .++. ",
-" .@##$. ",
-" .$%&&*=. ",
-" -;>,')!>~- ",
-" -~>!{]^/(- ",
-" -_:<[}|:1- ",
-" 23(:456732 ",
-" 23899802 ",
-" 2abba2 ",
-" 2222 ",
-" ",
-" ",
-" "};
diff --git a/editors/textadept/modules/dmd/function.xpm b/editors/textadept/modules/dmd/function.xpm
deleted file mode 100755
index 687c433..0000000
--- a/editors/textadept/modules/dmd/function.xpm
+++ /dev/null
@@ -1,73 +0,0 @@
-/* XPM */
-static char * function_xpm[] = {
-"16 16 54 1",
-" c None",
-". c #287E03",
-"+ c #42C009",
-"@ c #2B8303",
-"# c #2E8B04",
-"$ c #4BCA0B",
-"% c #308E04",
-"& c #2C8503",
-"* c #47C50A",
-"= c #2E8A04",
-"- c #2F8B04",
-"; c #48C70A",
-"> c #2C8703",
-", c #2F8C04",
-"' c #4BCB0B",
-") c #2B8403",
-"! c #43C10A",
-"~ c #297F03",
-"{ c #2E8A03",
-"] c #2B8503",
-"^ c #3EBA09",
-"/ c #267803",
-"( c #2A8303",
-"_ c #42BF09",
-": c #257603",
-"< c #39B408",
-"[ c #227103",
-"} c #3FBB09",
-"| c #267903",
-"1 c #227203",
-"2 c #37B108",
-"3 c #216D03",
-"4 c #277C03",
-"5 c #3DB909",
-"6 c #257703",
-"7 c #227003",
-"8 c #35AF07",
-"9 c #206B03",
-"0 c #267A03",
-"a c #3CB708",
-"b c #247503",
-"c c #216E03",
-"d c #34AD07",
-"e c #1F6902",
-"f c #257803",
-"g c #3AB508",
-"h c #237303",
-"i c #206C03",
-"j c #32AB07",
-"k c #1E6702",
-"l c #39B308",
-"m c #1F6A02",
-"n c #31A907",
-"o c #1C6502",
-" ",
-" ",
-" ",
-" .+@ #$% ",
-" &*= -;> ",
-" ,', )!~ ",
-" {*] .^/ ",
-" (_. :<[ ",
-" .}| 123 ",
-" 456 789 ",
-" 0ab cde ",
-" fgh ijk ",
-" bl[ mno ",
-" ",
-" ",
-" "};
diff --git a/editors/textadept/modules/dmd/init.lua b/editors/textadept/modules/dmd/init.lua
deleted file mode 100755
index b238eb1..0000000
--- a/editors/textadept/modules/dmd/init.lua
+++ /dev/null
@@ -1,629 +0,0 @@
--- Copyright Brian Schott (Sir Alaran) 2012.
--- Distributed under the Boost Software License, Version 1.0.
--- (See accompanying file LICENSE_1_0.txt or copy at
--- http://www.boost.org/LICENSE_1_0.txt)
-
-local M = {}
-
-_M.common.cstyle = require "common.cstyle"
-
-if type(_G.snippets) == 'table' then
- _G.snippets.dmd = {}
-end
-
-if type(_G.keys) == 'table' then
- _G.keys.dmd = {}
-end
-
--- functions icon
-M.FUNCTIONS = [[
-/* XPM */
-static char * function_xpm[] = {
-"16 16 54 1",
-" c None",
-". c #287E03",
-"+ c #42C009",
-"@ c #2B8303",
-"# c #2E8B04",
-"$ c #4BCA0B",
-"% c #308E04",
-"& c #2C8503",
-"* c #47C50A",
-"= c #2E8A04",
-"- c #2F8B04",
-"; c #48C70A",
-"> c #2C8703",
-", c #2F8C04",
-"' c #4BCB0B",
-") c #2B8403",
-"! c #43C10A",
-"~ c #297F03",
-"{ c #2E8A03",
-"] c #2B8503",
-"^ c #3EBA09",
-"/ c #267803",
-"( c #2A8303",
-"_ c #42BF09",
-": c #257603",
-"< c #39B408",
-"[ c #227103",
-"} c #3FBB09",
-"| c #267903",
-"1 c #227203",
-"2 c #37B108",
-"3 c #216D03",
-"4 c #277C03",
-"5 c #3DB909",
-"6 c #257703",
-"7 c #227003",
-"8 c #35AF07",
-"9 c #206B03",
-"0 c #267A03",
-"a c #3CB708",
-"b c #247503",
-"c c #216E03",
-"d c #34AD07",
-"e c #1F6902",
-"f c #257803",
-"g c #3AB508",
-"h c #237303",
-"i c #206C03",
-"j c #32AB07",
-"k c #1E6702",
-"l c #39B308",
-"m c #1F6A02",
-"n c #31A907",
-"o c #1C6502",
-" ",
-" ",
-" ",
-" .+@ #$% ",
-" &*= -;> ",
-" ,', )!~ ",
-" {*] .^/ ",
-" (_. :<[ ",
-" .}| 123 ",
-" 456 789 ",
-" 0ab cde ",
-" fgh ijk ",
-" bl[ mno ",
-" ",
-" ",
-" "};
-]]
-
--- fields icon
-M.FIELDS = [[
-/* XPM */
-static char * class_xpm[] = {
-"16 16 41 1",
-" c None",
-". c #010100",
-"+ c #020100",
-"@ c #BA1DBA",
-"# c #C120C1",
-"$ c #BA1CBA",
-"% c #C824C8",
-"& c #D229D2",
-"* c #C724C7",
-"= c #B91CB9",
-"- c #010000",
-"; c #AE16AE",
-"> c #BF1FBF",
-", c #D129D1",
-"' c #E231E2",
-") c #E131E1",
-"! c #D028D0",
-"~ c #AD16AD",
-"{ c #DF2FDF",
-"] c #DE2FDE",
-"^ c #CF28CF",
-"/ c #BE1EBE",
-"( c #AC15AC",
-"_ c #A813A8",
-": c #B71BB7",
-"< c #C622C5",
-"[ c #CE27CF",
-"} c #CE27CE",
-"| c #C522C5",
-"1 c #A713A7",
-"2 c #000000",
-"3 c #9E0E9E",
-"4 c #BD1EBD",
-"5 c #BC1EBC",
-"6 c #B61AB6",
-"7 c #AC15AB",
-"8 c #A612A6",
-"9 c #AB15AB",
-"0 c #9E0E9D",
-"a c #960A96",
-"b c #990C99",
-" ",
-" ",
-" ",
-" .++. ",
-" .@##$. ",
-" .$%&&*=. ",
-" -;>,')!>~- ",
-" -~>!{]^/(- ",
-" -_:<[}|:1- ",
-" 23(:456732 ",
-" 23899802 ",
-" 2abba2 ",
-" 2222 ",
-" ",
-" ",
-" "};
-
-]]
-
---package icon
-M.PACKAGE = [[
-/* XPM */
-static char * package_xpm[] = {
-"16 16 6 1",
-" c None",
-". c #000100",
-"+ c #050777",
-"@ c #242BAE",
-"# c #2E36BF",
-"$ c #434FE5",
-" ",
-" ............ ",
-" .$$$$$$$$$$$$. ",
-" .$##@@+$##@@+. ",
-" .$#@@@+$#@@@+. ",
-" .$@@@#+$@@@#+. ",
-" .$@@##+$@@##+. ",
-" .$+++++$+++++. ",
-" .$$$$$$$$$$$$. ",
-" .$##@@+$##@@+. ",
-" .$#@@@+$#@@@+. ",
-" .$@@@#+$@@@#+. ",
-" .$@@##+$@@##+. ",
-" .$+++++$+++++. ",
-" ............ ",
-" "};
-]]
-
--- module icon
-M.MODULE = [[
-/* XPM */
-static char * module_xpm[] = {
-"16 16 14 1",
-" c None",
-". c #000000",
-"+ c #000100",
-"@ c #FFFF83",
-"# c #FFFF00",
-"$ c #FFFF28",
-"% c #FFFF6A",
-"& c #FFFF4C",
-"* c #D5D500",
-"= c #CDCD00",
-"- c #A3A300",
-"; c #B2B200",
-"> c #C3C300",
-", c #919100",
-" ",
-" .+ ",
-" .@#+ ",
-" .@#+ ",
-" .$@##+ ",
-" ..%@##++ ",
-" ..&%%@####++ ",
-" .@@@@@%######+ ",
-" +*****=-;;;;;+ ",
-" ++>==*;--,.. ",
-" ++=*;-.. ",
-" +>*;,. ",
-" +*;. ",
-" +*;. ",
-" ++ ",
-" "};
-]]
-
-M.KEYWORD = [[
-/* XPM */
-static char * keyword_xpm[] = {
-"16 16 24 1",
-" c None",
-". c #B91C1C",
-"+ c #BA1C1C",
-"@ c #BE1D1D",
-"# c #C31E1E",
-"$ c #C21E1E",
-"% c #F0F0F0",
-"& c #C71E1E",
-"* c #F5F5F5",
-"= c #CC1F1F",
-"- c #FBFBFB",
-"; c #CB1F1F",
-"> c #CD1F1F",
-", c #FDFDFD",
-"' c #C91F1F",
-") c #F7F7F7",
-"! c #C41E1E",
-"~ c #F2F2F2",
-"{ c #C01D1D",
-"q c #ECECEC",
-"^ c #BB1D1D",
-"/ c #E7E7E7",
-"( c #B71C1C",
-"_ c #B21B1B",
-" ",
-" ",
-" .......... ",
-" @@@@@@@@@@@@ ",
-" #$%%%%%%$$#$ ",
-" &&*******&&& ",
-" ==--==;---== ",
-" >>,,>>>>,,>> ",
-" ''))''''))'' ",
-" !!~~!!!~~~!! ",
-" {{qqqqqqq{{{ ",
-" ^^//////^^^^ ",
-" (((((((((((( ",
-" __________ ",
-" ",
-" "};
-]]
-
-
-local keywords = {
- "__DATE__?5", "__EOF__?5", "__FILE__?5", "__FUNCTION__?5", "__LINE__?5",
- "__MODULE__?5", "__PRETTY_FUNCTION__?5", "__TIMESTAMP__?5", "__TIME__?5",
- "__VENDOR__?5", "__VERSION__?5", "__gshared?5", "__parameters?5",
- "__thread?5", "__traits?5", "__vector?5", "abstract?5", "alias?5",
- "align?5", "asm?5", "assert?5", "auto?5", "body?5", "bool?5", "break?5",
- "byte?5", "case?5", "cast?5", "catch?5", "cdouble?5", "cent?5", "cfloat?5",
- "char?5", "class?5", "const?5", "continue?5", "creal?5", "dchar?5",
- "debug?5", "default?5", "delegate?5", "delete?5", "deprecated?5", "do?5",
- "double?5", "dstring?5", "else?5", "enum?5", "export?5", "extern?5",
- "false?5", "final?5", "finally?5", "float?5", "for?5", "foreach?5",
- "foreach_reverse?5", "function?5", "goto?5", "idouble?5", "if?5",
- "ifloat?5", "immutable?5", "import?5", "in?5", "inout?5", "int?5",
- "interface?5", "invariant?5", "ireal?5", "is?5", "lazy?5", "long?5",
- "macro?5", "mixin?5", "module?5", "new?5", "nothrow?5", "null?5", "out?5",
- "override?5", "package?5", "pragma?5", "private?5", "protected?5", "public?5",
- "pure?5", "real?5", "ref?5", "return?5", "scope?5", "shared?5", "short?5",
- "static?5", "string?5", "struct?5", "super?5", "switch?5", "synchronized?5",
- "template?5", "this?5", "throw?5", "true?5", "try?5", "typedef?5",
- "typeid?5", "typeof?5", "ubyte?5", "ucent?5", "uint?5", "ulong?5",
- "union?5", "unittest?5", "ushort?5", "version?5", "void?5", "volatile?5",
- "wchar?5", "while?5", "with?5", "wstring?5"
-}
-
-
--- For this module to work the dscanner program must be installed. Configure the
--- path to the executable here
-M.PATH_TO_DSCANNER = "/home/alaran/src/dscanner/dscanner"
-M.PATH_TO_DCD_CLIENT = "/home/alaran/src/dcd/dcd-client"
-
-_M.textadept.editing.comment_string.dmd = '//'
-_M.textadept.run.compile_command.dmd = 'dmd -c -o- %(filename)'
-_M.textadept.run.error_detail.dmd = {
- pattern = '^(.-)%((%d+)%): (.+)$',
- filename = 1, line = 2, message = 3
-}
-
-local function registerImages()
- buffer:register_image(1, M.FIELDS)
- buffer:register_image(2, M.FUNCTIONS)
- buffer:register_image(3, M.PACKAGE)
- buffer:register_image(4, M.MODULE)
- buffer:register_image(5, M.KEYWORD)
-end
-
-
-local function showCompletionList(r)
- registerImages()
- local setting = buffer.auto_c_choose_single
- buffer.auto_c_choose_single = false;
- buffer.auto_c_max_width = 0
- local completions = {}
- for symbol, kind in r:gmatch("([@%w_%p]+)\t(%a)\n") do
- completion = symbol
- if kind == "k" then
- completion = completion .. "?5"
- elseif kind == "v" then
- completion = completion .. "?1"
- elseif kind == "e" then
- completion = completion .. "?1"
- elseif kind == "m" then
- completion = completion .. "?1"
- elseif kind == "c" then
- completion = completion .. "?1"
- elseif kind == "i" then
- completion = completion .. "?1"
- elseif kind == "f" then
- completion = completion .. "?2"
- elseif kind == "M" then
- completion = completion .. "?4"
- elseif kind == "P" then
- completion = completion .. "?3"
- end
- completions[#completions + 1] = completion
- end
- buffer:auto_c_show(0, table.concat(completions, " "))
- buffer.auto_c_choose_single = setting
-end
-
-events.connect(events.CHAR_ADDED, function(ch)
- if buffer:get_lexer() ~= "dmd" then return end
- if ch > 255 then return end
- local character = string.char(ch)
- if character == "." or character == "(" then
- local fileName = os.tmpname()
- local tmpFile = io.open(fileName, "w")
- tmpFile:write(buffer:get_text())
- local command = M.PATH_TO_DCD_CLIENT .. " -c" .. buffer.current_pos
- .. " " .. fileName
- print(command)
- local p = io.popen(command)
- local r = p:read("*a")
- if r ~= "\n" then
- showCompletionList(r)
- end
- os.remove(fileName)
- end
-end)
-
-events.connect(events.FILE_AFTER_SAVE, function()
- if buffer:get_lexer() ~= "dmd" then return end
- buffer:annotation_clear_all()
- --buffer.annotation_visible = _SCINTILLA.constants.ANNOTATION_STANDARD
- local command = M.PATH_TO_DSCANNER .. " --syntaxCheck " .. buffer.filename
- local p = io.popen(command)
- for line in p:lines() do
- lineNumber, column, level, message = string.match(line, "^.-%((%d+):(%d+)%)%[(%w+)%]: (.+)$")
- local l = tonumber(lineNumber) - 1
- if l >= 0 then
- local c = tonumber(column)
- if level == "error" then
- buffer.annotation_style[l] = 8
- else
- buffer.annotation_style[l] = 2
- end
- local t = buffer.annotation_text[l]
- if #t > 0 then
- buffer.annotation_text[l] = buffer.annotation_text[l] .. "\n" .. message
- else
- buffer.annotation_text[l] = message
- end
- end
- end
-end)
-
-
-local function autocomplete()
- registerImages()
- _M.textadept.editing.autocomplete_word(keywords)
-end
-
--- D-specific key commands.
-keys.dmd = {
- [keys.LANGUAGE_MODULE_PREFIX] = {
- m = { io.open_file,
- (_USERHOME..'/modules/dmd/init.lua'):iconv('UTF-8', _CHARSET) },
- },
- ['a\n'] = {_M.common.cstyle.newline},
- ['s\n'] = {_M.common.cstyle.newline_semicolon},
- ['c;'] = {_M.common.cstyle.endline_semicolon},
- ['}'] = {_M.common.cstyle.match_brace_indent},
- ['c{'] = {_M.common.cstyle.openBraceMagic, true},
- ['cs\n'] = {_M.common.cstyle.closeTagComStr},
- ['cM'] = {_M.common.cstyle.selectScope},
- ['\n'] = {_M.common.cstyle.enter_key_pressed},
- ['c\n'] = {autocomplete},
-}
-
-local snippets = _G.snippets
-
-if type(snippets) == 'table' then
- snippets.dmd = {
- gpl = [[/*******************************************************************************
- * Authors: %1(Your name here)
- * Copyright: %1
- * Date: %[date | cut -c 5-10] %[date | cut -c 25-]
- *
- * License:
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version
- * 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- ******************************************************************************/
-
-%0]],
- gpl3 = [[/*******************************************************************************
- * Authors: %1(Your name here)
- * Copyright: %1
- * Date: %[date | cut -c 5-10] %[date | cut -c 25-]
- *
- * License:
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- ******************************************************************************/
-
-%0]],
- mit = [[/*******************************************************************************
- * The MIT License
- *
- * Copyright (c) %[date | cut -c 25-] %1(Your name here)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- ******************************************************************************/
-
-%0]],
- boost = [[/*******************************************************************************
- * Boost Software License - Version 1.0 - August 17th, 2003
- *
- * Permission is hereby granted, free of charge, to any person or organization
- * obtaining a copy of the software and accompanying documentation covered by
- * this license (the "Software") to use, reproduce, display, distribute,
- * execute, and transmit the Software, and to prepare derivative works of the
- * Software, and to permit third-parties to whom the Software is furnished to
- * do so, all subject to the following:
- *
- * The copyright notices in the Software and this entire statement, including
- * the above license grant, this restriction and the following disclaimer,
- * must be included in all copies of the Software, in whole or in part, and
- * all derivative works of the Software, unless such copies or derivative
- * works are solely in the form of machine-executable object code generated by
- * a source language processor.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
- * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
- * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- ******************************************************************************/
-]],
- banner = [[/%
- * %0
- %/]],
- fun = [[%1(return type) %2(name)(%3(parameters))
-{
- %0
- return ;
-}]],
- vfun = [[void %1(name)(%2(parameters))
-{
- %0
-}]],
- main = [[void main(string[] args)
-{
- %0
-}]],
- ['for'] = [[for (%1(initilization); %2(condition); %3(increment))
-{
- %0
-}]],
- fore = [[foreach (%1(var); %2(range))
-{
- %0
-}]],
- forei = [[foreach (%1(i); 0..%2(n))
-{
- %0
-}]],
- forr = [[foreach (ref %1(var); %2(range))
-{
- %0
-}]],
- fori = [[for (size_t i = 0; i != %1(condition); ++i)
-{
- %0
-}]],
- ['while'] = [[while (%1(condition))
-{
- %0
-}]],
- ['if'] = [[if (%1(condition))
-{
- %0
-}]],
- dw = [[do
-{
- %0
-} while (%1(condition));]],
- switch = [[switch (%1(value))
-{
-%0
-default:
- break;
-}]],
- fswitch = [[final switch (%1(value))
-{
-%0
-default:
- break;
-}]],
- case = [[case %1:
- %0
- break;]],
- class = [[class %1(name)
-{
-public:
-
-private:
- %0
-}]],
- struct = [[struct %1(name)
-{
- %0
-}]],
- mem = 'm_%1 = %1;\n%0',
- wf = 'writef(%0);',
- wl = 'writeln(%0);',
- wfl = 'writefln(%0);',
- imp = 'import',
- sta = 'static',
- st = 'string',
- wch = 'wchar',
- dch = 'dchar',
- ch = 'char',
- dou = 'double',
- fl = 'float',
- by = 'byte',
- ret = 'return',
- im = 'immutable',
- co = 'const',
- ty = 'typeof',
- iit = [[if(is(typeof(%1)))
-{
- %0
-}]],
- itc = [[if(__traits(compiles, %1))
-{
- %0
-}]],
- sif = [[static if(%1)
-{
- %0
-}]],
- }
-end
-
-
-function M.set_buffer_properties()
-end
-
-return M
diff --git a/editors/textadept/modules/dmd/keyword.xpm b/editors/textadept/modules/dmd/keyword.xpm
deleted file mode 100755
index 8c69f7e..0000000
--- a/editors/textadept/modules/dmd/keyword.xpm
+++ /dev/null
@@ -1,43 +0,0 @@
-/* XPM */
-static char * keyword_xpm[] = {
-"16 16 24 1",
-" c None",
-". c #B91C1C",
-"+ c #BA1C1C",
-"@ c #BE1D1D",
-"# c #C31E1E",
-"$ c #C21E1E",
-"% c #F0F0F0",
-"& c #C71E1E",
-"* c #F5F5F5",
-"= c #CC1F1F",
-"- c #FBFBFB",
-"; c #CB1F1F",
-"> c #CD1F1F",
-", c #FDFDFD",
-"' c #C91F1F",
-") c #F7F7F7",
-"! c #C41E1E",
-"~ c #F2F2F2",
-"{ c #C01D1D",
-"] c #ECECEC",
-"^ c #BB1D1D",
-"/ c #E7E7E7",
-"( c #B71C1C",
-"_ c #B21B1B",
-" ",
-" ",
-" ......+... ",
-" @@@@@@@@@@@@ ",
-" #$%%%%%%$$#$ ",
-" &&*******&&& ",
-" ==--==;---== ",
-" >>,,>>>>,,>> ",
-" ''))''''))'' ",
-" !!~~!!!~~~!! ",
-" {{]]]]]]]{{{ ",
-" ^^//////^^^^ ",
-" (((((((((((( ",
-" __________ ",
-" ",
-" "};
diff --git a/editors/textadept/modules/dmd/module.xpm b/editors/textadept/modules/dmd/module.xpm
deleted file mode 100755
index d7006e9..0000000
--- a/editors/textadept/modules/dmd/module.xpm
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char * module_xpm[] = {
-"16 16 14 1",
-" c None",
-". c #000000",
-"+ c #000100",
-"@ c #FFFF83",
-"# c #FFFF00",
-"$ c #FFFF28",
-"% c #FFFF6A",
-"& c #FFFF4C",
-"* c #D5D500",
-"= c #CDCD00",
-"- c #A3A300",
-"; c #B2B200",
-"> c #C3C300",
-", c #919100",
-" ",
-" .+ ",
-" .@#+ ",
-" .@#+ ",
-" .$@##+ ",
-" ..%@##++ ",
-" ..&%%@####++ ",
-" .@@@@@%######+ ",
-" +*****=-;;;;;+ ",
-" ++>==*;--,.. ",
-" ++=*;-.. ",
-" +>*;,. ",
-" +*;. ",
-" +*;. ",
-" ++ ",
-" "};
diff --git a/editors/textadept/modules/dmd/package.xpm b/editors/textadept/modules/dmd/package.xpm
deleted file mode 100755
index 57a1fe9..0000000
--- a/editors/textadept/modules/dmd/package.xpm
+++ /dev/null
@@ -1,25 +0,0 @@
-/* XPM */
-static char * package_xpm[] = {
-"16 16 6 1",
-" c None",
-". c #000100",
-"+ c #050777",
-"@ c #242BAE",
-"# c #2E36BF",
-"$ c #434FE5",
-" ",
-" ............ ",
-" .$$$$$$$$$$$$. ",
-" .$##@@+$##@@+. ",
-" .$#@@@+$#@@@+. ",
-" .$@@@#+$@@@#+. ",
-" .$@@##+$@@##+. ",
-" .$+++++$+++++. ",
-" .$$$$$$$$$$$$. ",
-" .$##@@+$##@@+. ",
-" .$#@@@+$#@@@+. ",
-" .$@@@#+$@@@#+. ",
-" .$@@##+$@@##+. ",
-" .$+++++$+++++. ",
-" ............ ",
-" "};
diff --git a/main.d b/main.d
index 485d763..a8432c1 100644
--- a/main.d
+++ b/main.d
@@ -36,19 +36,35 @@ int main(string[] args)
bool syntaxCheck;
bool ast;
bool imports;
+ bool muffin;
try
{
getopt(args, "sloc|l", &sloc, "highlight", &highlight,
"ctags|c", &ctags, "recursive|r|R", &recursive, "help|h", &help,
"tokenCount|t", &tokenCount, "syntaxCheck|s", &syntaxCheck,
- "ast|xml", &ast, "imports|i", &imports);
+ "ast|xml", &ast, "imports|i", &imports, "muffinButton", &muffin);
}
catch (Exception e)
{
stderr.writeln(e.msg);
}
+ if (muffin)
+ {
+ stdout.writeln(
+` ___________
+ __(#*O 0** @%*)__
+ _(%*o#*O%*0 #O#%##@)_
+ (*#@%#o*@ #o%O*%@ #o #)
+ \=====================/
+ |I|I|I|I|I|I|I|I|I|I|
+ |I|I|I|I|I|I|I|I|I|I|
+ |I|I|I|I|I|I|I|I|I|I|
+ |I|I|I|I|I|I|I|I|I|I|`);
+ return 0;
+ }
+
if (help)
{
printHelp(args[0]);
diff --git a/stdx/d/lexer.d b/stdx/d/lexer.d
index 5a1f47e..26615ce 100644
--- a/stdx/d/lexer.d
+++ b/stdx/d/lexer.d
@@ -3500,5 +3500,3 @@ unittest
}
assert (tokenCount == 16);
}
-
-//void main(string[] args){}
diff --git a/stdx/d/parser.d b/stdx/d/parser.d
index bbde25c..614fad0 100644
--- a/stdx/d/parser.d
+++ b/stdx/d/parser.d
@@ -1285,6 +1285,8 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
mixin(traceEnterAndExit!(__FUNCTION__));
auto node = new CmpExpression;
auto shift = parseShiftExpression();
+ if (!moreTokens())
+ return shift;
with (TokenType) switch (current.type)
{
case is_:
@@ -1766,8 +1768,8 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
auto dos = parseDeclarationOrStatement();
if (dos !is null)
node.declarationsAndStatements ~= dos;
- else
- return null;
+ /*else
+ return null;*/
}
return node;
}
@@ -6181,7 +6183,7 @@ private:
messageFunction(fileName, line, column, message);
}
- void error(lazy string message)
+ void error(lazy string message, bool shouldAdvance = true)
{
import std.stdio;
if (suppressMessages <= 0)
@@ -6195,12 +6197,12 @@ private:
else
messageFunction(fileName, line, column, message);
}
- while (moreTokens())
+ while (shouldAdvance && moreTokens())
{
if (currentIsOneOf(TokenType.semicolon, TokenType.rBrace,
TokenType.rParen, TokenType.rBracket))
{
- advance();
+ advance();
break;
}
else
@@ -6317,12 +6319,15 @@ private:
return &tokens[index++];
else
{
- if (getTokenValue(type) is null)
- error("Expected " ~ to!string(type) ~ " instead of "
- ~ (index < tokens.length ? tokens[index].value : "EOF"));
- else
- error("Expected " ~ getTokenValue(type) ~ " instead of "
- ~ (index < tokens.length ? tokens[index].value : "EOF"));
+ string tokenString = getTokenValue(type) is null
+ ? to!string(type) : getTokenValue(type);
+ bool shouldNotAdvance = index < tokens.length
+ && (tokens[index].type == TokenType.rParen
+ || tokens[index].type == TokenType.semicolon
+ || tokens[index].type == TokenType.rBrace);
+ error("Expected " ~ tokenString ~ " instead of "
+ ~ (index < tokens.length ? tokens[index].value : "EOF"),
+ !shouldNotAdvance);
return null;
}
}