From fdfbaa97e4543f3c99c47138640051bd413bed93 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Fri, 22 Jun 2012 10:55:47 -0700 Subject: [PATCH] added textadept module --- editors/textadept/modules/dmd/class.xpm | 60 ++ editors/textadept/modules/dmd/function.xpm | 73 +++ editors/textadept/modules/dmd/init.lua | 632 +++++++++++++++++++++ editors/textadept/modules/dmd/keyword.xpm | 43 ++ editors/textadept/modules/dmd/module.xpm | 33 ++ editors/textadept/modules/dmd/package.xpm | 25 + 6 files changed, 866 insertions(+) create mode 100755 editors/textadept/modules/dmd/class.xpm create mode 100755 editors/textadept/modules/dmd/function.xpm create mode 100755 editors/textadept/modules/dmd/init.lua create mode 100755 editors/textadept/modules/dmd/keyword.xpm create mode 100755 editors/textadept/modules/dmd/module.xpm create mode 100755 editors/textadept/modules/dmd/package.xpm diff --git a/editors/textadept/modules/dmd/class.xpm b/editors/textadept/modules/dmd/class.xpm new file mode 100755 index 0000000..e9eba4f --- /dev/null +++ b/editors/textadept/modules/dmd/class.xpm @@ -0,0 +1,60 @@ +/* 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 new file mode 100755 index 0000000..687c433 --- /dev/null +++ b/editors/textadept/modules/dmd/function.xpm @@ -0,0 +1,73 @@ +/* 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 new file mode 100755 index 0000000..4aafd1c --- /dev/null +++ b/editors/textadept/modules/dmd/init.lua @@ -0,0 +1,632 @@ +-------------------------------------------------------------------------------- +-- The MIT License +-- +-- Copyright (c) 2012 Brian Schott +-- +-- 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. +-------------------------------------------------------------------------------- + + +local M = {} + +_M.common.cstyle = require "common.cstyle" +local callStack = _M.common.cstyle.callStack + +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 = { + "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", + "@disable?5", "do?5", "double?5", "dstring?5", "else?5", "enum?5", + "export?5", "extern?5", "false?5", "__FILE__?5", "finally?5", + "final?5", "float?5", "foreach_reverse?5", "foreach?5", "for?5", "function?5", + "goto?5", "__gshared?5", "idouble?5", "ifloat?5", "if?5", "immutable?5", + "import?5", "inout?5", "interface?5", "in?5", "int?5", "invariant?5", + "ireal?5", "is?5", "lazy?5", "__LINE__?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", "@property?5", + "protected?5", "public?5", "pure?5", "real?5", + "ref?5", "return?5", "@safe?5", "scope?5", "shared?5", "short?5", + "static?5", "string?5", "struct?5", "super?5", "switch?5", "synchronized?5", + "@system?5", "template?5", "this?5", "__thread?5", "throw?5", + "__traits?5", "true?5", "@trusted?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 = "dscanner" + +_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_]+) (%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_DSCANNER + .. (character == "." and " --dotComplete " or " --parenComplete ") + .. fileName .. " " .. buffer.current_pos .. " -I" .. buffer.filename:match(".+[\\/]") + local p = io.popen(command) + local r = p:read("*a") + print ("[[" .. r .. "]]") + if r ~= "\n" then + if character == "." then + showCompletionList(r) + elseif character == "(" then + if r:find("^completions\n") then + showCompletionList(r) + elseif r:find("^calltips\n.*") then + r = r:gsub("^calltips\n", "") + buffer:call_tip_show(buffer.current_pos, r:gsub("\\n", "\n"):gsub("\\t", "\t"):match("(.*)%s+$")) + end + end + end + os.remove(fileName) + end +end) + + +local function autocomplete() + registerImages() + _M.textadept.editing.autocomplete_word("@%w_", 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 new file mode 100755 index 0000000..8c69f7e --- /dev/null +++ b/editors/textadept/modules/dmd/keyword.xpm @@ -0,0 +1,43 @@ +/* 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 new file mode 100755 index 0000000..d7006e9 --- /dev/null +++ b/editors/textadept/modules/dmd/module.xpm @@ -0,0 +1,33 @@ +/* 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 new file mode 100755 index 0000000..57a1fe9 --- /dev/null +++ b/editors/textadept/modules/dmd/package.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char * package_xpm[] = { +"16 16 6 1", +" c None", +". c #000100", +"+ c #050777", +"@ c #242BAE", +"# c #2E36BF", +"$ c #434FE5", +" ", +" ............ ", +" .$$$$$$$$$$$$. ", +" .$##@@+$##@@+. ", +" .$#@@@+$#@@@+. ", +" .$@@@#+$@@@#+. ", +" .$@@##+$@@##+. ", +" .$+++++$+++++. ", +" .$$$$$$$$$$$$. ", +" .$##@@+$##@@+. ", +" .$#@@@+$#@@@+. ", +" .$@@@#+$@@@#+. ", +" .$@@##+$@@##+. ", +" .$+++++$+++++. ", +" ............ ", +" "};