1 //this file is part of notepad++ 2 //Copyright (C)2003 Don HO <donho@altern.org> 3 // 4 //This program is free software; you can redistribute it and/or 5 //modify it under the terms of the GNU General Public License 6 //as published by the Free Software Foundation; either 7 //version 2 of the License, or (at your option) any later version. 8 // 9 //This program is distributed in the hope that it will be useful, 10 //but WITHOUT ANY WARRANTY; without even the implied warranty of 11 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 //GNU General Public License for more details. 13 // 14 //You should have received a copy of the GNU General Public License 15 //along with this program; if not, write to the Free Software 16 //Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 /** 18 * Notepad++ lang 19 * 20 * Author: dokutoku, https://twitter.com/dokutoku3 21 * License: GPL-2.0 or later 22 */ 23 module npp_api.pluginfunc.lang; 24 25 26 private static import core.sys.windows.winbase; 27 private static import core.sys.windows.windef; 28 private static import std.algorithm; 29 private static import std.array; 30 private static import std.path; 31 private static import std.traits; 32 private static import npp_api.powereditor.menucmdid; 33 private static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 34 private static import npp_api.pluginfunc.npp_msgs; 35 private static import npp_api.pluginfunc.string; 36 private static import npp_api.pluginfunc.path; 37 38 pragma(inline, true) 39 pure nothrow @safe @nogc 40 bool is_known_lang(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 41 42 do 43 { 44 return (lang != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL) && (lang != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS); 45 } 46 47 /** 48 * is programming language 49 * ToDo: 50 */ 51 pragma(inline, true) 52 pure nothrow @safe @nogc 53 bool is_p_lang(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 54 55 do 56 { 57 switch (lang) { 58 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 59 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 60 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 61 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 62 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 63 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 64 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 65 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 66 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 67 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 68 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 69 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 70 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 71 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 72 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 73 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 74 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 75 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 76 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 77 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 78 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 79 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 80 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 81 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 82 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 83 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 84 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 85 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 86 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 87 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 88 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 89 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 90 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 91 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 92 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 93 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 94 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 95 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 96 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 97 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 98 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 99 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 100 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 101 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 102 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 103 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 104 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 105 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 106 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 107 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 108 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 109 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 110 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 111 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 112 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 113 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 114 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 115 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 116 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 117 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 118 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 119 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 120 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 121 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 122 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 123 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 124 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 125 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 126 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 127 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 128 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 129 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 130 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 131 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 132 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 133 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 134 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 135 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 136 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 137 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 138 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 139 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 140 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 141 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 142 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 143 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 144 return true; 145 146 default: 147 return false; 148 } 149 } 150 151 /** 152 * Convert IDM_LANG_* to LangType 153 * 154 * Params: 155 * IDM_LANG = IDM_LANG_* 156 * 157 * Returns: LangType or LangType.L_EXTERNAL 158 */ 159 pragma(inline, true) 160 pure nothrow @safe @nogc 161 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType from_IDM_LANG(int IDM_LANG) 162 163 do 164 { 165 static import npp_api.powereditor.menucmdid; 166 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 167 168 switch (IDM_LANG) { 169 case npp_api.powereditor.menucmdid.IDM_LANG_C: 170 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C; 171 172 case npp_api.powereditor.menucmdid.IDM_LANG_CPP: 173 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP; 174 175 case npp_api.powereditor.menucmdid.IDM_LANG_JAVA: 176 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA; 177 178 case npp_api.powereditor.menucmdid.IDM_LANG_HTML: 179 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML; 180 181 case npp_api.powereditor.menucmdid.IDM_LANG_XML: 182 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML; 183 184 case npp_api.powereditor.menucmdid.IDM_LANG_JS: 185 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS; 186 187 case npp_api.powereditor.menucmdid.IDM_LANG_PHP: 188 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP; 189 190 case npp_api.powereditor.menucmdid.IDM_LANG_ASP: 191 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP; 192 193 case npp_api.powereditor.menucmdid.IDM_LANG_CSS: 194 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS; 195 196 case npp_api.powereditor.menucmdid.IDM_LANG_PASCAL: 197 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL; 198 199 case npp_api.powereditor.menucmdid.IDM_LANG_PYTHON: 200 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON; 201 202 case npp_api.powereditor.menucmdid.IDM_LANG_PERL: 203 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL; 204 205 case npp_api.powereditor.menucmdid.IDM_LANG_OBJC: 206 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC; 207 208 case npp_api.powereditor.menucmdid.IDM_LANG_ASCII: 209 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII; 210 211 case npp_api.powereditor.menucmdid.IDM_LANG_TEXT: 212 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT; 213 214 case npp_api.powereditor.menucmdid.IDM_LANG_RC: 215 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC; 216 217 case npp_api.powereditor.menucmdid.IDM_LANG_MAKEFILE: 218 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE; 219 220 case npp_api.powereditor.menucmdid.IDM_LANG_INI: 221 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI; 222 223 case npp_api.powereditor.menucmdid.IDM_LANG_SQL: 224 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL; 225 226 case npp_api.powereditor.menucmdid.IDM_LANG_VB: 227 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB; 228 229 case npp_api.powereditor.menucmdid.IDM_LANG_BATCH: 230 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH; 231 232 case npp_api.powereditor.menucmdid.IDM_LANG_CS: 233 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS; 234 235 case npp_api.powereditor.menucmdid.IDM_LANG_LUA: 236 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA; 237 238 case npp_api.powereditor.menucmdid.IDM_LANG_TEX: 239 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX; 240 241 case npp_api.powereditor.menucmdid.IDM_LANG_FORTRAN: 242 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN; 243 244 case npp_api.powereditor.menucmdid.IDM_LANG_BASH: 245 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH; 246 247 case npp_api.powereditor.menucmdid.IDM_LANG_FLASH: 248 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH; 249 250 case npp_api.powereditor.menucmdid.IDM_LANG_NSIS: 251 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS; 252 253 case npp_api.powereditor.menucmdid.IDM_LANG_TCL: 254 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL; 255 256 case npp_api.powereditor.menucmdid.IDM_LANG_LISP: 257 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP; 258 259 case npp_api.powereditor.menucmdid.IDM_LANG_SCHEME: 260 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME; 261 262 case npp_api.powereditor.menucmdid.IDM_LANG_ASM: 263 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM; 264 265 case npp_api.powereditor.menucmdid.IDM_LANG_DIFF: 266 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF; 267 268 case npp_api.powereditor.menucmdid.IDM_LANG_PROPS: 269 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS; 270 271 case npp_api.powereditor.menucmdid.IDM_LANG_PS: 272 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS; 273 274 case npp_api.powereditor.menucmdid.IDM_LANG_RUBY: 275 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY; 276 277 case npp_api.powereditor.menucmdid.IDM_LANG_SMALLTALK: 278 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK; 279 280 case npp_api.powereditor.menucmdid.IDM_LANG_VHDL: 281 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL; 282 283 case npp_api.powereditor.menucmdid.IDM_LANG_CAML: 284 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML; 285 286 case npp_api.powereditor.menucmdid.IDM_LANG_KIX: 287 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX; 288 289 case npp_api.powereditor.menucmdid.IDM_LANG_ADA: 290 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA; 291 292 case npp_api.powereditor.menucmdid.IDM_LANG_VERILOG: 293 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG; 294 295 case npp_api.powereditor.menucmdid.IDM_LANG_AU3: 296 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3; 297 298 case npp_api.powereditor.menucmdid.IDM_LANG_MATLAB: 299 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB; 300 301 case npp_api.powereditor.menucmdid.IDM_LANG_HASKELL: 302 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL; 303 304 case npp_api.powereditor.menucmdid.IDM_LANG_INNO: 305 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO; 306 307 case npp_api.powereditor.menucmdid.IDM_LANG_CMAKE: 308 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE; 309 310 case npp_api.powereditor.menucmdid.IDM_LANG_YAML: 311 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML; 312 313 case npp_api.powereditor.menucmdid.IDM_LANG_COBOL: 314 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL; 315 316 case npp_api.powereditor.menucmdid.IDM_LANG_D: 317 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D; 318 319 case npp_api.powereditor.menucmdid.IDM_LANG_GUI4CLI: 320 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI; 321 322 case npp_api.powereditor.menucmdid.IDM_LANG_POWERSHELL: 323 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL; 324 325 case npp_api.powereditor.menucmdid.IDM_LANG_R: 326 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R; 327 328 case npp_api.powereditor.menucmdid.IDM_LANG_JSP: 329 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP; 330 331 case npp_api.powereditor.menucmdid.IDM_LANG_COFFEESCRIPT: 332 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT; 333 334 case npp_api.powereditor.menucmdid.IDM_LANG_JSON: 335 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON; 336 337 case npp_api.powereditor.menucmdid.IDM_LANG_FORTRAN_77: 338 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77; 339 340 case npp_api.powereditor.menucmdid.IDM_LANG_BAANC: 341 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC; 342 343 case npp_api.powereditor.menucmdid.IDM_LANG_SREC: 344 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC; 345 346 case npp_api.powereditor.menucmdid.IDM_LANG_IHEX: 347 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX; 348 349 case npp_api.powereditor.menucmdid.IDM_LANG_TEHEX: 350 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX; 351 352 case npp_api.powereditor.menucmdid.IDM_LANG_SWIFT: 353 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT; 354 355 case npp_api.powereditor.menucmdid.IDM_LANG_ASN1: 356 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1; 357 358 case npp_api.powereditor.menucmdid.IDM_LANG_AVS: 359 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS; 360 361 case npp_api.powereditor.menucmdid.IDM_LANG_BLITZBASIC: 362 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC; 363 364 case npp_api.powereditor.menucmdid.IDM_LANG_PUREBASIC: 365 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC; 366 367 case npp_api.powereditor.menucmdid.IDM_LANG_FREEBASIC: 368 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC; 369 370 case npp_api.powereditor.menucmdid.IDM_LANG_CSOUND: 371 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND; 372 373 case npp_api.powereditor.menucmdid.IDM_LANG_ERLANG: 374 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG; 375 376 case npp_api.powereditor.menucmdid.IDM_LANG_ESCRIPT: 377 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT; 378 379 case npp_api.powereditor.menucmdid.IDM_LANG_FORTH: 380 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH; 381 382 case npp_api.powereditor.menucmdid.IDM_LANG_LATEX: 383 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX; 384 385 case npp_api.powereditor.menucmdid.IDM_LANG_MMIXAL: 386 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL; 387 388 case npp_api.powereditor.menucmdid.IDM_LANG_NIMROD: 389 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD; 390 391 case npp_api.powereditor.menucmdid.IDM_LANG_NNCRONTAB: 392 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB; 393 394 case npp_api.powereditor.menucmdid.IDM_LANG_OSCRIPT: 395 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT; 396 397 case npp_api.powereditor.menucmdid.IDM_LANG_REBOL: 398 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL; 399 400 case npp_api.powereditor.menucmdid.IDM_LANG_REGISTRY: 401 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY; 402 403 case npp_api.powereditor.menucmdid.IDM_LANG_RUST: 404 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST; 405 406 case npp_api.powereditor.menucmdid.IDM_LANG_SPICE: 407 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE; 408 409 case npp_api.powereditor.menucmdid.IDM_LANG_TXT2TAGS: 410 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS; 411 412 case npp_api.powereditor.menucmdid.IDM_LANG_VISUALPROLOG: 413 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG; 414 415 case npp_api.powereditor.menucmdid.IDM_LANG_EXTERNAL: 416 case npp_api.powereditor.menucmdid.IDM_LANG_EXTERNAL_LIMIT: 417 default: 418 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL; 419 } 420 } 421 422 /** 423 * Convert LangType to IDM_LANG_* 424 * 425 * Params: 426 * lang = LangType 427 * 428 * Returns: IDM_LANG_* or IDM_LANG_EXTERNAL_LIMIT on error. 429 */ 430 pragma(inline, true) 431 pure nothrow @safe @nogc 432 int to_IDM_LANG(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 433 434 do 435 { 436 static import npp_api.powereditor.menucmdid; 437 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 438 439 switch (lang) { 440 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 441 return npp_api.powereditor.menucmdid.IDM_LANG_TEXT; 442 443 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 444 return npp_api.powereditor.menucmdid.IDM_LANG_PHP; 445 446 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 447 return npp_api.powereditor.menucmdid.IDM_LANG_C; 448 449 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 450 return npp_api.powereditor.menucmdid.IDM_LANG_CPP; 451 452 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 453 return npp_api.powereditor.menucmdid.IDM_LANG_CS; 454 455 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 456 return npp_api.powereditor.menucmdid.IDM_LANG_OBJC; 457 458 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 459 return npp_api.powereditor.menucmdid.IDM_LANG_JAVA; 460 461 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 462 return npp_api.powereditor.menucmdid.IDM_LANG_RC; 463 464 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 465 return npp_api.powereditor.menucmdid.IDM_LANG_HTML; 466 467 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 468 return npp_api.powereditor.menucmdid.IDM_LANG_XML; 469 470 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 471 return npp_api.powereditor.menucmdid.IDM_LANG_MAKEFILE; 472 473 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 474 return npp_api.powereditor.menucmdid.IDM_LANG_PASCAL; 475 476 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 477 return npp_api.powereditor.menucmdid.IDM_LANG_BATCH; 478 479 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 480 return npp_api.powereditor.menucmdid.IDM_LANG_INI; 481 482 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 483 return npp_api.powereditor.menucmdid.IDM_LANG_ASCII; 484 485 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 486 return npp_api.powereditor.menucmdid.IDM_LANG_ASP; 487 488 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 489 return npp_api.powereditor.menucmdid.IDM_LANG_SQL; 490 491 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 492 return npp_api.powereditor.menucmdid.IDM_LANG_VB; 493 494 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 495 return npp_api.powereditor.menucmdid.IDM_LANG_JS; 496 497 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 498 return npp_api.powereditor.menucmdid.IDM_LANG_CSS; 499 500 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 501 return npp_api.powereditor.menucmdid.IDM_LANG_PERL; 502 503 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 504 return npp_api.powereditor.menucmdid.IDM_LANG_PYTHON; 505 506 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 507 return npp_api.powereditor.menucmdid.IDM_LANG_LUA; 508 509 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 510 return npp_api.powereditor.menucmdid.IDM_LANG_TEX; 511 512 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 513 return npp_api.powereditor.menucmdid.IDM_LANG_FORTRAN; 514 515 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 516 return npp_api.powereditor.menucmdid.IDM_LANG_BASH; 517 518 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 519 return npp_api.powereditor.menucmdid.IDM_LANG_FLASH; 520 521 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 522 return npp_api.powereditor.menucmdid.IDM_LANG_NSIS; 523 524 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 525 return npp_api.powereditor.menucmdid.IDM_LANG_TCL; 526 527 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 528 return npp_api.powereditor.menucmdid.IDM_LANG_LISP; 529 530 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 531 return npp_api.powereditor.menucmdid.IDM_LANG_SCHEME; 532 533 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 534 return npp_api.powereditor.menucmdid.IDM_LANG_ASM; 535 536 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 537 return npp_api.powereditor.menucmdid.IDM_LANG_DIFF; 538 539 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 540 return npp_api.powereditor.menucmdid.IDM_LANG_PROPS; 541 542 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 543 return npp_api.powereditor.menucmdid.IDM_LANG_PS; 544 545 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 546 return npp_api.powereditor.menucmdid.IDM_LANG_RUBY; 547 548 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 549 return npp_api.powereditor.menucmdid.IDM_LANG_SMALLTALK; 550 551 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 552 return npp_api.powereditor.menucmdid.IDM_LANG_VHDL; 553 554 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 555 return npp_api.powereditor.menucmdid.IDM_LANG_KIX; 556 557 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 558 return npp_api.powereditor.menucmdid.IDM_LANG_AU3; 559 560 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 561 return npp_api.powereditor.menucmdid.IDM_LANG_CAML; 562 563 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 564 return npp_api.powereditor.menucmdid.IDM_LANG_ADA; 565 566 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 567 return npp_api.powereditor.menucmdid.IDM_LANG_VERILOG; 568 569 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 570 return npp_api.powereditor.menucmdid.IDM_LANG_MATLAB; 571 572 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 573 return npp_api.powereditor.menucmdid.IDM_LANG_HASKELL; 574 575 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 576 return npp_api.powereditor.menucmdid.IDM_LANG_INNO; 577 578 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 579 return npp_api.powereditor.menucmdid.IDM_LANG_CMAKE; 580 581 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 582 return npp_api.powereditor.menucmdid.IDM_LANG_YAML; 583 584 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 585 return npp_api.powereditor.menucmdid.IDM_LANG_COBOL; 586 587 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 588 return npp_api.powereditor.menucmdid.IDM_LANG_GUI4CLI; 589 590 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 591 return npp_api.powereditor.menucmdid.IDM_LANG_D; 592 593 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 594 return npp_api.powereditor.menucmdid.IDM_LANG_POWERSHELL; 595 596 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 597 return npp_api.powereditor.menucmdid.IDM_LANG_R; 598 599 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 600 return npp_api.powereditor.menucmdid.IDM_LANG_JSP; 601 602 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 603 return npp_api.powereditor.menucmdid.IDM_LANG_COFFEESCRIPT; 604 605 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 606 return npp_api.powereditor.menucmdid.IDM_LANG_JSON; 607 608 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 609 return npp_api.powereditor.menucmdid.IDM_LANG_FORTRAN_77; 610 611 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 612 return npp_api.powereditor.menucmdid.IDM_LANG_BAANC; 613 614 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 615 return npp_api.powereditor.menucmdid.IDM_LANG_SREC; 616 617 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 618 return npp_api.powereditor.menucmdid.IDM_LANG_IHEX; 619 620 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 621 return npp_api.powereditor.menucmdid.IDM_LANG_TEHEX; 622 623 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 624 return npp_api.powereditor.menucmdid.IDM_LANG_SWIFT; 625 626 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 627 return npp_api.powereditor.menucmdid.IDM_LANG_ASN1; 628 629 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 630 return npp_api.powereditor.menucmdid.IDM_LANG_AVS; 631 632 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 633 return npp_api.powereditor.menucmdid.IDM_LANG_BLITZBASIC; 634 635 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 636 return npp_api.powereditor.menucmdid.IDM_LANG_PUREBASIC; 637 638 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 639 return npp_api.powereditor.menucmdid.IDM_LANG_FREEBASIC; 640 641 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 642 return npp_api.powereditor.menucmdid.IDM_LANG_CSOUND; 643 644 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 645 return npp_api.powereditor.menucmdid.IDM_LANG_ERLANG; 646 647 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 648 return npp_api.powereditor.menucmdid.IDM_LANG_ESCRIPT; 649 650 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 651 return npp_api.powereditor.menucmdid.IDM_LANG_FORTH; 652 653 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 654 return npp_api.powereditor.menucmdid.IDM_LANG_LATEX; 655 656 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 657 return npp_api.powereditor.menucmdid.IDM_LANG_MMIXAL; 658 659 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 660 return npp_api.powereditor.menucmdid.IDM_LANG_NIMROD; 661 662 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 663 return npp_api.powereditor.menucmdid.IDM_LANG_NNCRONTAB; 664 665 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 666 return npp_api.powereditor.menucmdid.IDM_LANG_OSCRIPT; 667 668 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 669 return npp_api.powereditor.menucmdid.IDM_LANG_REBOL; 670 671 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 672 return npp_api.powereditor.menucmdid.IDM_LANG_REGISTRY; 673 674 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 675 return npp_api.powereditor.menucmdid.IDM_LANG_RUST; 676 677 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 678 return npp_api.powereditor.menucmdid.IDM_LANG_SPICE; 679 680 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 681 return npp_api.powereditor.menucmdid.IDM_LANG_TXT2TAGS; 682 683 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 684 return npp_api.powereditor.menucmdid.IDM_LANG_VISUALPROLOG; 685 686 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 687 return npp_api.powereditor.menucmdid.IDM_LANG_EXTERNAL; 688 689 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 690 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 691 //case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 692 default: 693 return npp_api.powereditor.menucmdid.IDM_LANG_EXTERNAL_LIMIT; 694 } 695 } 696 697 /** 698 * Whether Windows \\?\ path is supported 699 * 700 * Params: 701 * lang = LangType 702 * 703 * Returns: true is supported 704 * ToDo: 705 */ 706 pragma(inline, true) 707 pure nothrow @safe @nogc 708 bool is_extended_path_supported(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 709 710 do 711 { 712 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 713 714 switch (lang) { 715 /* 716 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 717 return false; 718 */ 719 720 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 721 return false; 722 723 /* 724 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 725 return false; 726 */ 727 728 /* 729 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 730 return false; 731 */ 732 733 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 734 return false; 735 736 /* 737 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 738 return false; 739 */ 740 741 /* 742 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 743 return false; 744 */ 745 746 /* 747 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 748 return false; 749 */ 750 751 /* 752 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 753 return false; 754 */ 755 756 /* 757 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 758 return false; 759 */ 760 761 /* 762 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 763 return false; 764 */ 765 766 /* 767 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 768 return false; 769 */ 770 771 /* 772 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 773 return false; 774 */ 775 776 /* 777 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 778 return false; 779 */ 780 781 /* 782 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 783 return false; 784 */ 785 786 /* 787 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 788 return false; 789 */ 790 791 /* 792 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 793 return false; 794 */ 795 796 /* 797 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 798 return false; 799 */ 800 801 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 802 return true; 803 804 /* 805 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 806 return false; 807 */ 808 809 /* 810 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 811 return false; 812 */ 813 814 /* 815 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 816 return false; 817 */ 818 819 /* 820 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 821 return false; 822 */ 823 824 /* 825 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 826 return false; 827 */ 828 829 /* 830 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 831 return false; 832 */ 833 834 /* 835 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 836 return false; 837 */ 838 839 /* 840 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 841 return false; 842 */ 843 844 /* 845 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 846 return false; 847 */ 848 849 /* 850 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 851 return false; 852 */ 853 854 /* 855 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 856 return false; 857 */ 858 859 /* 860 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 861 return false; 862 */ 863 864 /* 865 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 866 return false; 867 */ 868 869 /* 870 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 871 return false; 872 */ 873 874 /* 875 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 876 return false; 877 */ 878 879 /* 880 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 881 return false; 882 */ 883 884 /* 885 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 886 return false; 887 */ 888 889 /* 890 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 891 return false; 892 */ 893 894 /* 895 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 896 return false; 897 */ 898 899 /* 900 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 901 return false; 902 */ 903 904 /* 905 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 906 return false; 907 */ 908 909 /* 910 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 911 return false; 912 */ 913 914 /* 915 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 916 return false; 917 */ 918 919 /* 920 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 921 return false; 922 */ 923 924 /* 925 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 926 return false; 927 */ 928 929 /* 930 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 931 return false; 932 */ 933 934 /* 935 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 936 return false; 937 */ 938 939 /* 940 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 941 return false; 942 */ 943 944 /* 945 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 946 return false; 947 */ 948 949 /* 950 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 951 return false; 952 */ 953 954 /* 955 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 956 return false; 957 */ 958 959 /* 960 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 961 return false; 962 */ 963 964 /* 965 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 966 return false; 967 */ 968 969 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 970 return true; 971 972 /* 973 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 974 return false; 975 */ 976 977 /* 978 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 979 return false; 980 */ 981 982 /* 983 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 984 return false; 985 */ 986 987 /* 988 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 989 return false; 990 */ 991 992 /* 993 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 994 return false; 995 */ 996 997 /* 998 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 999 return false; 1000 */ 1001 1002 /* 1003 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 1004 return false; 1005 */ 1006 1007 /* 1008 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 1009 return false; 1010 */ 1011 1012 /* 1013 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 1014 return false; 1015 */ 1016 1017 /* 1018 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 1019 return false; 1020 */ 1021 1022 /* 1023 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 1024 return false; 1025 */ 1026 1027 /* 1028 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 1029 return false; 1030 */ 1031 1032 /* 1033 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 1034 return false; 1035 */ 1036 1037 /* 1038 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 1039 return false; 1040 */ 1041 1042 /* 1043 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 1044 return false; 1045 */ 1046 1047 /* 1048 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 1049 return false; 1050 */ 1051 1052 /* 1053 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 1054 return false; 1055 */ 1056 1057 /* 1058 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 1059 return false; 1060 */ 1061 1062 /* 1063 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 1064 return false; 1065 */ 1066 1067 /* 1068 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 1069 return false; 1070 */ 1071 1072 /* 1073 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 1074 return false; 1075 */ 1076 1077 /* 1078 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 1079 return false; 1080 */ 1081 1082 /* 1083 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 1084 return false; 1085 */ 1086 1087 /* 1088 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 1089 return false; 1090 */ 1091 1092 /* 1093 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 1094 return false; 1095 */ 1096 1097 /* 1098 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 1099 return false; 1100 */ 1101 1102 /* 1103 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 1104 return false; 1105 */ 1106 1107 /* 1108 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 1109 return false; 1110 */ 1111 1112 /* 1113 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 1114 return false; 1115 */ 1116 1117 /* 1118 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 1119 return false; 1120 */ 1121 1122 /* 1123 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 1124 return false; 1125 */ 1126 1127 /* 1128 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 1129 return false; 1130 */ 1131 1132 /* 1133 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 1134 return false; 1135 */ 1136 1137 default: 1138 return false; 1139 } 1140 } 1141 1142 /** 1143 * Whether Windows \\?\ path is supported 1144 * 1145 * Params: 1146 * ext = lang file extension 1147 * 1148 * Returns: true is supported 1149 */ 1150 pragma(inline, true) 1151 pure nothrow @safe @nogc 1152 bool is_extended_path_supported(S)(S ext) 1153 if (std.traits.isSomeString!(S)) 1154 1155 do 1156 { 1157 switch (ext) { 1158 case ".d": 1159 case ".go": 1160 return true; 1161 1162 //case ".php": 1163 default: 1164 return false; 1165 } 1166 } 1167 1168 /** 1169 * Convert LangType to extension 1170 * 1171 * Params: 1172 * lang = LangType 1173 * 1174 * Returns: file extension or null 1175 * ToDo: 1176 */ 1177 pure nothrow @safe @nogc 1178 S lang_to_ext(S)(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 1179 1180 do 1181 { 1182 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1183 1184 switch (lang) { 1185 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 1186 return ".txt"; 1187 1188 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 1189 return ".php"; 1190 1191 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 1192 return ".c"; 1193 1194 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 1195 return ".cpp"; 1196 1197 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 1198 return ".cs"; 1199 1200 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 1201 return null; 1202 1203 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 1204 return null; 1205 1206 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 1207 return null; 1208 1209 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 1210 return ".html"; 1211 1212 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 1213 return ".xml"; 1214 1215 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 1216 return null; 1217 1218 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 1219 return null; 1220 1221 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 1222 return null; 1223 1224 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 1225 return ".ini"; 1226 1227 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 1228 return null; 1229 1230 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 1231 return null; 1232 1233 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 1234 return null; 1235 1236 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 1237 return null; 1238 1239 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 1240 return ".vb"; 1241 1242 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 1243 return null; 1244 1245 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 1246 return null; 1247 1248 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 1249 return null; 1250 1251 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 1252 return ".py"; 1253 1254 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 1255 return null; 1256 1257 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 1258 return null; 1259 1260 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 1261 return null; 1262 1263 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 1264 return null; 1265 1266 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 1267 return null; 1268 1269 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 1270 return null; 1271 1272 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 1273 return null; 1274 1275 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 1276 return null; 1277 1278 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 1279 return null; 1280 1281 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 1282 return ".asm"; 1283 1284 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 1285 return null; 1286 1287 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 1288 return null; 1289 1290 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 1291 return null; 1292 1293 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 1294 return ".rb"; 1295 1296 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 1297 return null; 1298 1299 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 1300 return null; 1301 1302 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 1303 return null; 1304 1305 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 1306 return null; 1307 1308 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 1309 return null; 1310 1311 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 1312 return null; 1313 1314 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 1315 return null; 1316 1317 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 1318 return null; 1319 1320 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 1321 return null; 1322 1323 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 1324 return null; 1325 1326 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 1327 return null; 1328 1329 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 1330 return null; 1331 1332 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 1333 return null; 1334 1335 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 1336 return null; 1337 1338 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 1339 return null; 1340 1341 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 1342 return ".d"; 1343 1344 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 1345 return null; 1346 1347 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 1348 return null; 1349 1350 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 1351 return null; 1352 1353 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 1354 return null; 1355 1356 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 1357 return ".json"; 1358 1359 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 1360 return null; 1361 1362 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 1363 return null; 1364 1365 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 1366 return null; 1367 1368 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 1369 return null; 1370 1371 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 1372 return null; 1373 1374 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 1375 return null; 1376 1377 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 1378 return null; 1379 1380 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 1381 return null; 1382 1383 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 1384 return null; 1385 1386 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 1387 return null; 1388 1389 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 1390 return null; 1391 1392 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 1393 return null; 1394 1395 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 1396 return null; 1397 1398 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 1399 return null; 1400 1401 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 1402 return null; 1403 1404 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 1405 return null; 1406 1407 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 1408 return null; 1409 1410 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 1411 return null; 1412 1413 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 1414 return null; 1415 1416 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 1417 return null; 1418 1419 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 1420 return null; 1421 1422 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 1423 return null; 1424 1425 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 1426 return null; 1427 1428 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 1429 return null; 1430 1431 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 1432 return null; 1433 1434 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 1435 return null; 1436 1437 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 1438 return null; 1439 1440 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 1441 return null; 1442 1443 default: 1444 return null; 1445 } 1446 } 1447 1448 /** 1449 * Contert extension to LangType 1450 * 1451 * Params: 1452 * extension = file extension 1453 * 1454 * Returns: LangType, default is L_EXTERNAL 1455 * ToDo: 1456 */ 1457 pure nothrow @safe @nogc 1458 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType ext_to_lang(C)(const (C)[] extension) 1459 if (std.traits.isSomeChar!(C)) 1460 1461 in 1462 { 1463 if (extension.length != 0) { 1464 assert(extension.length >= 2); 1465 assert(extension[0] == '.'); 1466 } 1467 } 1468 1469 do 1470 { 1471 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1472 1473 switch (extension) { 1474 case ".txt": 1475 case ".log": 1476 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT; 1477 1478 case ".php": 1479 case ".php3": 1480 case ".php4": 1481 case ".php5": 1482 case ".phps": 1483 case ".phpt": 1484 case ".phtml": 1485 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP; 1486 1487 case ".h": 1488 case ".c": 1489 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C; 1490 1491 case ".hh": 1492 case ".hpp": 1493 case ".hxx": 1494 case ".cc": 1495 case ".cpp": 1496 case ".cxx": 1497 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP; 1498 1499 case ".cs": 1500 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS; 1501 1502 /* 1503 case ".": 1504 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC; 1505 */ 1506 1507 /* 1508 case ".": 1509 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA; 1510 */ 1511 1512 /* 1513 case ".": 1514 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC; 1515 */ 1516 1517 case ".html": 1518 case ".htm": 1519 case ".shtml": 1520 case ".shtm": 1521 case ".hta": 1522 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML; 1523 1524 case ".xml": 1525 case ".xhtml": 1526 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML; 1527 1528 /* 1529 case ".": 1530 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE; 1531 */ 1532 1533 /* 1534 case ".": 1535 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL; 1536 */ 1537 1538 /* 1539 case ".": 1540 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH; 1541 */ 1542 1543 case ".ini": 1544 case ".inf": 1545 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI; 1546 1547 /* 1548 case ".": 1549 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII; 1550 */ 1551 1552 /* 1553 case ".": 1554 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER; 1555 */ 1556 1557 case ".asp": 1558 case ".aspx": 1559 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP; 1560 1561 case ".sql": 1562 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL; 1563 1564 case ".vb": 1565 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB; 1566 1567 /* 1568 case ".js": 1569 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS; 1570 */ 1571 1572 case ".css": 1573 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS; 1574 1575 case ".pl": 1576 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL; 1577 1578 case ".py": 1579 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON; 1580 1581 case ".lua": 1582 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA; 1583 1584 /* 1585 case ".": 1586 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX; 1587 */ 1588 1589 /* 1590 case ".": 1591 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN; 1592 */ 1593 1594 /* 1595 case ".": 1596 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH; 1597 */ 1598 1599 /* 1600 case ".": 1601 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH; 1602 */ 1603 1604 /* 1605 case ".": 1606 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS; 1607 */ 1608 1609 /* 1610 case ".": 1611 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL; 1612 */ 1613 1614 /* 1615 case ".": 1616 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP; 1617 */ 1618 1619 /* 1620 case ".": 1621 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME; 1622 */ 1623 1624 /* 1625 case ".": 1626 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM; 1627 */ 1628 1629 /* 1630 case ".": 1631 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF; 1632 */ 1633 1634 /* 1635 case ".": 1636 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS; 1637 */ 1638 1639 /* 1640 case ".": 1641 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS; 1642 */ 1643 1644 case ".rb": 1645 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY; 1646 1647 /* 1648 case ".": 1649 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK; 1650 */ 1651 1652 /* 1653 case ".": 1654 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL; 1655 */ 1656 1657 /* 1658 case ".": 1659 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX; 1660 */ 1661 1662 /* 1663 case ".": 1664 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3; 1665 */ 1666 1667 /* 1668 case ".": 1669 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML; 1670 */ 1671 1672 /* 1673 case ".": 1674 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA; 1675 */ 1676 1677 /* 1678 case ".": 1679 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG; 1680 */ 1681 1682 /* 1683 case ".": 1684 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB; 1685 */ 1686 1687 /* 1688 case ".": 1689 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL; 1690 */ 1691 1692 /* 1693 case ".": 1694 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO; 1695 */ 1696 1697 /* 1698 case ".": 1699 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT; 1700 */ 1701 1702 /* 1703 case ".": 1704 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE; 1705 */ 1706 1707 /* 1708 case ".": 1709 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML; 1710 */ 1711 1712 /* 1713 case ".": 1714 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL; 1715 */ 1716 1717 /* 1718 case ".": 1719 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI; 1720 */ 1721 1722 case ".d": 1723 case ".dd": 1724 case ".di": 1725 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D; 1726 1727 case ".ps": 1728 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL; 1729 1730 case ".r": 1731 case ".rda": 1732 case ".rdata": 1733 case ".rds": 1734 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R; 1735 1736 /* 1737 case ".": 1738 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP; 1739 */ 1740 1741 /* 1742 case ".": 1743 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT; 1744 */ 1745 1746 case ".json": 1747 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON; 1748 1749 /* 1750 case ".js": 1751 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT; 1752 */ 1753 1754 /* 1755 case ".": 1756 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77; 1757 */ 1758 1759 /* 1760 case ".": 1761 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC; 1762 */ 1763 1764 /* 1765 case ".": 1766 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC; 1767 */ 1768 1769 /* 1770 case ".": 1771 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX; 1772 */ 1773 1774 /* 1775 case ".": 1776 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX; 1777 */ 1778 1779 /* 1780 case ".": 1781 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT; 1782 */ 1783 1784 /* 1785 case ".": 1786 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1; 1787 */ 1788 1789 /* 1790 case ".": 1791 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS; 1792 */ 1793 1794 /* 1795 case ".": 1796 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC; 1797 */ 1798 1799 /* 1800 case ".": 1801 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC; 1802 */ 1803 1804 /* 1805 case ".": 1806 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC; 1807 */ 1808 1809 /* 1810 case ".": 1811 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND; 1812 */ 1813 1814 /* 1815 case ".": 1816 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG; 1817 */ 1818 1819 /* 1820 case ".": 1821 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT; 1822 */ 1823 1824 /* 1825 case ".": 1826 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH; 1827 */ 1828 1829 /* 1830 case ".": 1831 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX; 1832 */ 1833 1834 /* 1835 case ".": 1836 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL; 1837 */ 1838 1839 /* 1840 case ".": 1841 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD; 1842 */ 1843 1844 /* 1845 case ".": 1846 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB; 1847 */ 1848 1849 /* 1850 case ".": 1851 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT; 1852 */ 1853 1854 /* 1855 case ".": 1856 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL; 1857 */ 1858 1859 /* 1860 case ".": 1861 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY; 1862 */ 1863 1864 /* 1865 case ".": 1866 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST; 1867 */ 1868 1869 /* 1870 case ".": 1871 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE; 1872 */ 1873 1874 /* 1875 case ".": 1876 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS; 1877 */ 1878 1879 /* 1880 case ".": 1881 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG; 1882 */ 1883 1884 default: 1885 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL; 1886 } 1887 } 1888 1889 unittest 1890 { 1891 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1892 static import npp_api.pluginfunc.lang; 1893 1894 assert(npp_api.pluginfunc.lang.ext_to_lang(".php") == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1895 assert(npp_api.pluginfunc.lang.ext_to_lang(".php"w) == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1896 assert(npp_api.pluginfunc.lang.ext_to_lang(".php"d) == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1897 assert(npp_api.pluginfunc.lang.ext_to_lang(".php\0") != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1898 assert(npp_api.pluginfunc.lang.ext_to_lang(".PHP") != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1899 } 1900 1901 version (Windows) { 1902 /** 1903 * プログラミング言語のデフォルトのファイルパスを返す。 1904 * 1905 * Params: 1906 * lang = 1907 * 1908 * Returns: そのプログラミング言語の実行ファイルへのPATHが決まっていたらそのPATH。決まっていないなら実行ファイル名のみ。見つからないならnull。 1909 * ToDo: 1910 */ 1911 pure nothrow @safe @nogc 1912 immutable (C)[] default_lang_path(C)(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 1913 if (std.traits.isSomeChar!(C)) 1914 1915 do 1916 { 1917 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1918 1919 switch (lang) { 1920 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 1921 return null; 1922 1923 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 1924 return "php.exe"; 1925 1926 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 1927 return null; 1928 1929 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 1930 return null; 1931 1932 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 1933 return "csc.exe"; 1934 1935 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 1936 return null; 1937 1938 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 1939 return null; 1940 1941 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 1942 return null; 1943 1944 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 1945 return null; 1946 1947 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 1948 return null; 1949 1950 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 1951 return null; 1952 1953 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 1954 return null; 1955 1956 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 1957 return null; 1958 1959 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 1960 return null; 1961 1962 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 1963 return null; 1964 1965 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 1966 return null; 1967 1968 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 1969 return null; 1970 1971 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 1972 return null; 1973 1974 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 1975 return null; 1976 1977 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 1978 return null; 1979 1980 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 1981 return null; 1982 1983 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 1984 return null; 1985 1986 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 1987 return "python.exe"; 1988 1989 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 1990 return null; 1991 1992 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 1993 return null; 1994 1995 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 1996 return null; 1997 1998 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 1999 return null; 2000 2001 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 2002 return null; 2003 2004 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 2005 return null; 2006 2007 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 2008 return null; 2009 2010 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 2011 return null; 2012 2013 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 2014 return null; 2015 2016 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 2017 return null; 2018 2019 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 2020 return null; 2021 2022 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 2023 return null; 2024 2025 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 2026 return null; 2027 2028 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 2029 return "ruby.exe"; 2030 2031 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 2032 return null; 2033 2034 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 2035 return null; 2036 2037 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 2038 return null; 2039 2040 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 2041 return null; 2042 2043 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 2044 return null; 2045 2046 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 2047 return null; 2048 2049 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 2050 return null; 2051 2052 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 2053 return null; 2054 2055 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 2056 return null; 2057 2058 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 2059 return null; 2060 2061 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 2062 return null; 2063 2064 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 2065 return null; 2066 2067 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 2068 return null; 2069 2070 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 2071 return null; 2072 2073 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 2074 return null; 2075 2076 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 2077 return "%HOMEDRIVE%\\D\\dmd2\\windows\\bin\\dmd.exe"; 2078 2079 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 2080 return null; 2081 2082 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 2083 return null; 2084 2085 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 2086 return null; 2087 2088 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 2089 return null; 2090 2091 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 2092 return null; 2093 2094 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 2095 return null; 2096 2097 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 2098 return null; 2099 2100 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 2101 return null; 2102 2103 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 2104 return null; 2105 2106 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 2107 return null; 2108 2109 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 2110 return null; 2111 2112 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 2113 return null; 2114 2115 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 2116 return null; 2117 2118 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 2119 return null; 2120 2121 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 2122 return null; 2123 2124 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 2125 return null; 2126 2127 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 2128 return null; 2129 2130 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 2131 return null; 2132 2133 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 2134 return null; 2135 2136 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 2137 return null; 2138 2139 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 2140 return null; 2141 2142 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 2143 return null; 2144 2145 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 2146 return null; 2147 2148 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 2149 return null; 2150 2151 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 2152 return null; 2153 2154 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 2155 return null; 2156 2157 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 2158 return null; 2159 2160 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 2161 return null; 2162 2163 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 2164 return null; 2165 2166 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 2167 return null; 2168 2169 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 2170 return null; 2171 2172 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 2173 return null; 2174 2175 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 2176 default: 2177 return null; 2178 } 2179 } 2180 2181 /** 2182 * 拡張子からデフォルトの実行ファイル名のPATHを返す 2183 * ToDo: 2184 */ 2185 pure nothrow @safe @nogc 2186 immutable (C)[] default_lang_path(C)(const (C)[] extension) 2187 if (std.traits.isSomeChar!(C)) 2188 2189 do 2190 { 2191 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2192 2193 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang_type = .ext_to_lang(extension); 2194 2195 if (is_known_lang(lang_type)) { 2196 return .default_lang_path!(C)(lang_type); 2197 } 2198 2199 switch (extension) { 2200 case ".dub": 2201 case ".sdl": 2202 return "%HOMEDRIVE%\\D\\dmd2\\windows\\bin\\dub.exe"; 2203 2204 case ".go": 2205 return "%HOMEDRIVE%\\Go\\bin\\go.exe"; 2206 2207 default: 2208 break; 2209 } 2210 2211 return null; 2212 } 2213 2214 template L_EXE_PATH(S, npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 2215 if (std.traits.isSomeString!(S)) 2216 { 2217 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2218 2219 enum S L_EXE_PATH = default_lang_path!(S)(lang); 2220 static assert(L_EXE_PATH.length != 0); 2221 } 2222 2223 pragma(inline, true) 2224 nothrow @nogc 2225 void set_lang(core.sys.windows.windef.HWND _nppHandle, npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 2226 2227 do 2228 { 2229 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2230 static import npp_api.pluginfunc.npp_msgs; 2231 2232 if (is_known_lang(lang)) { 2233 npp_api.pluginfunc.npp_msgs.send_NPPM_SETCURRENTLANGTYPE(_nppHandle, lang); 2234 } 2235 } 2236 2237 pragma(inline, true) 2238 nothrow @nogc 2239 void set_lang(C)(core.sys.windows.windef.HWND _nppHandle, const (C)[] extension) 2240 if (std.traits.isSomeChar!(C)) 2241 2242 do 2243 { 2244 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2245 static import npp_api.pluginfunc.npp_msgs; 2246 2247 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang_type = .ext_to_lang(extension); 2248 2249 if (is_known_lang(lang_type)) { 2250 npp_api.pluginfunc.npp_msgs.send_NPPM_SETCURRENTLANGTYPE(_nppHandle, lang_type); 2251 } 2252 } 2253 2254 version (Not_betterC) { 2255 wstring replace_lang_variable(wstring path) 2256 2257 do 2258 { 2259 static import core.sys.windows.winbase; 2260 static import std.algorithm; 2261 static import std.array; 2262 static import npp_api.pluginfunc.string; 2263 static import npp_api.pluginfunc.path; 2264 2265 if ((path == null) || (!std.algorithm.canFind(path, '%'))) { 2266 return path; 2267 } 2268 2269 core.sys.windows.winnt.WCHAR[npp_api.pluginfunc.path.OS_MAX_PATH] buf = '\0'; 2270 2271 if (core.sys.windows.winbase.GetEnvironmentVariableW(&(npp_api.pluginfunc..string.c_wstring!("HOMEDRIVE"w)[0]), &(buf[0]), buf.length) == 0) { 2272 return path; 2273 } 2274 2275 return std.array.replace(path, "%HOMEDRIVE%"w, npp_api.pluginfunc..string.from_stringz(buf)).idup; 2276 } 2277 2278 nothrow 2279 wstring lang_path(lang_identifier)(lang_identifier lang) 2280 if (is(lang_identifier : npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType) || is(lang_identifier : const wchar[])) 2281 2282 do 2283 { 2284 static import std.algorithm; 2285 static import std.path; 2286 static import npp_api.pluginfunc.path; 2287 2288 wstring path = default_lang_path!(wchar)(lang); 2289 2290 if (path == null) { 2291 return null; 2292 } 2293 2294 try { 2295 if (std.algorithm.canFind(path, '%')) { 2296 path = replace_lang_variable(path); 2297 assert(!std.algorithm.canFind(path, '%')); 2298 } 2299 2300 if (!std.path.isAbsolute(path)) { 2301 path = npp_api.pluginfunc.path.search_exe(path); 2302 } 2303 } catch (Exception e) { 2304 } 2305 2306 return path.idup; 2307 } 2308 } 2309 }