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; } }