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 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 1113 return true; 1114 1115 /* 1116 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 1117 return false; 1118 */ 1119 1120 /* 1121 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 1122 return false; 1123 */ 1124 1125 /* 1126 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 1127 return false; 1128 */ 1129 1130 /* 1131 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 1132 return false; 1133 */ 1134 1135 default: 1136 return false; 1137 } 1138 } 1139 1140 /** 1141 * Whether Windows \\?\ path is supported 1142 * 1143 * Params: 1144 * ext = lang file extension 1145 * 1146 * Returns: true is supported 1147 */ 1148 pragma(inline, true) 1149 pure nothrow @safe @nogc 1150 bool is_extended_path_supported(S)(S ext) 1151 if (std.traits.isSomeString!(S)) 1152 1153 do 1154 { 1155 switch (ext) { 1156 case ".d": 1157 case ".go": 1158 case ".rs": 1159 return true; 1160 1161 //case ".php": 1162 default: 1163 return false; 1164 } 1165 } 1166 1167 /** 1168 * Convert LangType to extension 1169 * 1170 * Params: 1171 * lang = LangType 1172 * 1173 * Returns: file extension or null 1174 * ToDo: 1175 */ 1176 pure nothrow @safe @nogc 1177 S lang_to_ext(S)(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 1178 1179 do 1180 { 1181 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1182 1183 switch (lang) { 1184 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 1185 return ".txt"; 1186 1187 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 1188 return ".php"; 1189 1190 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 1191 return ".c"; 1192 1193 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 1194 return ".cpp"; 1195 1196 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 1197 return ".cs"; 1198 1199 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 1200 return null; 1201 1202 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 1203 return null; 1204 1205 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 1206 return null; 1207 1208 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 1209 return ".html"; 1210 1211 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 1212 return ".xml"; 1213 1214 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 1215 return null; 1216 1217 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 1218 return null; 1219 1220 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 1221 return null; 1222 1223 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 1224 return ".ini"; 1225 1226 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 1227 return null; 1228 1229 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 1230 return null; 1231 1232 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 1233 return null; 1234 1235 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 1236 return null; 1237 1238 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 1239 return ".vb"; 1240 1241 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 1242 return null; 1243 1244 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 1245 return null; 1246 1247 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 1248 return null; 1249 1250 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 1251 return ".py"; 1252 1253 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 1254 return null; 1255 1256 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 1257 return null; 1258 1259 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 1260 return null; 1261 1262 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 1263 return null; 1264 1265 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 1266 return null; 1267 1268 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 1269 return null; 1270 1271 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 1272 return null; 1273 1274 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 1275 return null; 1276 1277 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 1278 return null; 1279 1280 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 1281 return ".asm"; 1282 1283 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 1284 return null; 1285 1286 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 1287 return null; 1288 1289 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 1290 return null; 1291 1292 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 1293 return ".rb"; 1294 1295 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 1296 return null; 1297 1298 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 1299 return null; 1300 1301 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 1302 return null; 1303 1304 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 1305 return null; 1306 1307 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 1308 return null; 1309 1310 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 1311 return null; 1312 1313 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 1314 return null; 1315 1316 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 1317 return null; 1318 1319 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 1320 return null; 1321 1322 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 1323 return null; 1324 1325 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 1326 return null; 1327 1328 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 1329 return null; 1330 1331 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 1332 return null; 1333 1334 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 1335 return null; 1336 1337 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 1338 return null; 1339 1340 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 1341 return ".d"; 1342 1343 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 1344 return null; 1345 1346 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 1347 return null; 1348 1349 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 1350 return null; 1351 1352 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 1353 return null; 1354 1355 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 1356 return ".json"; 1357 1358 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 1359 return null; 1360 1361 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 1362 return null; 1363 1364 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 1365 return null; 1366 1367 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 1368 return null; 1369 1370 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 1371 return null; 1372 1373 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 1374 return null; 1375 1376 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 1377 return null; 1378 1379 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 1380 return null; 1381 1382 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 1383 return null; 1384 1385 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 1386 return null; 1387 1388 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 1389 return null; 1390 1391 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 1392 return null; 1393 1394 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 1395 return null; 1396 1397 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 1398 return null; 1399 1400 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 1401 return null; 1402 1403 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 1404 return null; 1405 1406 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 1407 return null; 1408 1409 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 1410 return null; 1411 1412 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 1413 return null; 1414 1415 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 1416 return null; 1417 1418 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 1419 return null; 1420 1421 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 1422 return null; 1423 1424 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 1425 return null; 1426 1427 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 1428 return ".rs"; 1429 1430 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 1431 return null; 1432 1433 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 1434 return null; 1435 1436 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 1437 return null; 1438 1439 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 1440 return null; 1441 1442 default: 1443 return null; 1444 } 1445 } 1446 1447 /** 1448 * Contert extension to LangType 1449 * 1450 * Params: 1451 * extension = file extension 1452 * 1453 * Returns: LangType, default is L_EXTERNAL 1454 * ToDo: 1455 */ 1456 pure nothrow @safe @nogc 1457 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType ext_to_lang(C)(const (C)[] extension) 1458 if (std.traits.isSomeChar!(C)) 1459 1460 in 1461 { 1462 if (extension.length != 0) { 1463 assert(extension.length >= 2); 1464 assert(extension[0] == '.'); 1465 } 1466 } 1467 1468 do 1469 { 1470 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1471 1472 switch (extension) { 1473 case ".txt": 1474 case ".log": 1475 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT; 1476 1477 case ".php": 1478 case ".php3": 1479 case ".php4": 1480 case ".php5": 1481 case ".phps": 1482 case ".phpt": 1483 case ".phtml": 1484 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP; 1485 1486 case ".h": 1487 case ".c": 1488 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C; 1489 1490 case ".hh": 1491 case ".hpp": 1492 case ".hxx": 1493 case ".cc": 1494 case ".cpp": 1495 case ".cxx": 1496 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP; 1497 1498 case ".cs": 1499 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS; 1500 1501 /* 1502 case ".": 1503 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC; 1504 */ 1505 1506 /* 1507 case ".": 1508 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA; 1509 */ 1510 1511 /* 1512 case ".": 1513 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC; 1514 */ 1515 1516 case ".html": 1517 case ".htm": 1518 case ".shtml": 1519 case ".shtm": 1520 case ".hta": 1521 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML; 1522 1523 case ".xml": 1524 case ".xhtml": 1525 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML; 1526 1527 /* 1528 case ".": 1529 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE; 1530 */ 1531 1532 /* 1533 case ".": 1534 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL; 1535 */ 1536 1537 /* 1538 case ".": 1539 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH; 1540 */ 1541 1542 case ".ini": 1543 case ".inf": 1544 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI; 1545 1546 /* 1547 case ".": 1548 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII; 1549 */ 1550 1551 /* 1552 case ".": 1553 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER; 1554 */ 1555 1556 case ".asp": 1557 case ".aspx": 1558 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP; 1559 1560 case ".sql": 1561 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL; 1562 1563 case ".vb": 1564 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB; 1565 1566 /* 1567 case ".js": 1568 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS; 1569 */ 1570 1571 case ".css": 1572 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS; 1573 1574 case ".pl": 1575 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL; 1576 1577 case ".py": 1578 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON; 1579 1580 case ".lua": 1581 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA; 1582 1583 /* 1584 case ".": 1585 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX; 1586 */ 1587 1588 /* 1589 case ".": 1590 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN; 1591 */ 1592 1593 /* 1594 case ".": 1595 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH; 1596 */ 1597 1598 /* 1599 case ".": 1600 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH; 1601 */ 1602 1603 /* 1604 case ".": 1605 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS; 1606 */ 1607 1608 /* 1609 case ".": 1610 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL; 1611 */ 1612 1613 /* 1614 case ".": 1615 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP; 1616 */ 1617 1618 /* 1619 case ".": 1620 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME; 1621 */ 1622 1623 /* 1624 case ".": 1625 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM; 1626 */ 1627 1628 /* 1629 case ".": 1630 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF; 1631 */ 1632 1633 /* 1634 case ".": 1635 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS; 1636 */ 1637 1638 /* 1639 case ".": 1640 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS; 1641 */ 1642 1643 case ".rb": 1644 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY; 1645 1646 /* 1647 case ".": 1648 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK; 1649 */ 1650 1651 /* 1652 case ".": 1653 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL; 1654 */ 1655 1656 /* 1657 case ".": 1658 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX; 1659 */ 1660 1661 /* 1662 case ".": 1663 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3; 1664 */ 1665 1666 /* 1667 case ".": 1668 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML; 1669 */ 1670 1671 /* 1672 case ".": 1673 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA; 1674 */ 1675 1676 /* 1677 case ".": 1678 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG; 1679 */ 1680 1681 /* 1682 case ".": 1683 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB; 1684 */ 1685 1686 /* 1687 case ".": 1688 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL; 1689 */ 1690 1691 /* 1692 case ".": 1693 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO; 1694 */ 1695 1696 /* 1697 case ".": 1698 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT; 1699 */ 1700 1701 /* 1702 case ".": 1703 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE; 1704 */ 1705 1706 /* 1707 case ".": 1708 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML; 1709 */ 1710 1711 /* 1712 case ".": 1713 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL; 1714 */ 1715 1716 /* 1717 case ".": 1718 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI; 1719 */ 1720 1721 case ".d": 1722 case ".dd": 1723 case ".di": 1724 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D; 1725 1726 case ".ps": 1727 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL; 1728 1729 case ".r": 1730 case ".rda": 1731 case ".rdata": 1732 case ".rds": 1733 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R; 1734 1735 /* 1736 case ".": 1737 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP; 1738 */ 1739 1740 /* 1741 case ".": 1742 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT; 1743 */ 1744 1745 case ".json": 1746 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON; 1747 1748 /* 1749 case ".js": 1750 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT; 1751 */ 1752 1753 /* 1754 case ".": 1755 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77; 1756 */ 1757 1758 /* 1759 case ".": 1760 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC; 1761 */ 1762 1763 /* 1764 case ".": 1765 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC; 1766 */ 1767 1768 /* 1769 case ".": 1770 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX; 1771 */ 1772 1773 /* 1774 case ".": 1775 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX; 1776 */ 1777 1778 /* 1779 case ".": 1780 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT; 1781 */ 1782 1783 /* 1784 case ".": 1785 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1; 1786 */ 1787 1788 /* 1789 case ".": 1790 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS; 1791 */ 1792 1793 /* 1794 case ".": 1795 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC; 1796 */ 1797 1798 /* 1799 case ".": 1800 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC; 1801 */ 1802 1803 /* 1804 case ".": 1805 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC; 1806 */ 1807 1808 /* 1809 case ".": 1810 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND; 1811 */ 1812 1813 /* 1814 case ".": 1815 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG; 1816 */ 1817 1818 /* 1819 case ".": 1820 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT; 1821 */ 1822 1823 /* 1824 case ".": 1825 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH; 1826 */ 1827 1828 /* 1829 case ".": 1830 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX; 1831 */ 1832 1833 /* 1834 case ".": 1835 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL; 1836 */ 1837 1838 /* 1839 case ".": 1840 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD; 1841 */ 1842 1843 /* 1844 case ".": 1845 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB; 1846 */ 1847 1848 /* 1849 case ".": 1850 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT; 1851 */ 1852 1853 /* 1854 case ".": 1855 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL; 1856 */ 1857 1858 /* 1859 case ".": 1860 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY; 1861 */ 1862 1863 case ".rs": 1864 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST; 1865 1866 /* 1867 case ".": 1868 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE; 1869 */ 1870 1871 /* 1872 case ".": 1873 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS; 1874 */ 1875 1876 /* 1877 case ".": 1878 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG; 1879 */ 1880 1881 default: 1882 return npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL; 1883 } 1884 } 1885 1886 unittest 1887 { 1888 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1889 static import npp_api.pluginfunc.lang; 1890 1891 assert(npp_api.pluginfunc.lang.ext_to_lang(".php") == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1892 assert(npp_api.pluginfunc.lang.ext_to_lang(".php"w) == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1893 assert(npp_api.pluginfunc.lang.ext_to_lang(".php"d) == npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1894 assert(npp_api.pluginfunc.lang.ext_to_lang(".php\0") != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1895 assert(npp_api.pluginfunc.lang.ext_to_lang(".PHP") != npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP); 1896 } 1897 1898 version (Windows) { 1899 /** 1900 * プログラミング言語のデフォルトのファイルパスを返す。 1901 * 1902 * Params: 1903 * lang = 1904 * 1905 * Returns: そのプログラミング言語の実行ファイルへのPATHが決まっていたらそのPATH。決まっていないなら実行ファイル名のみ。見つからないならnull。 1906 * ToDo: 1907 */ 1908 pure nothrow @safe @nogc 1909 immutable (C)[] default_lang_path(C)(npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 1910 if (std.traits.isSomeChar!(C)) 1911 1912 do 1913 { 1914 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 1915 1916 switch (lang) { 1917 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEXT: 1918 return null; 1919 1920 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PHP: 1921 return "php.exe"; 1922 1923 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_C: 1924 return null; 1925 1926 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CPP: 1927 return null; 1928 1929 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CS: 1930 return "csc.exe"; 1931 1932 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OBJC: 1933 return null; 1934 1935 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVA: 1936 return null; 1937 1938 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RC: 1939 return null; 1940 1941 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HTML: 1942 return null; 1943 1944 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_XML: 1945 return null; 1946 1947 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MAKEFILE: 1948 return null; 1949 1950 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PASCAL: 1951 return null; 1952 1953 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BATCH: 1954 return null; 1955 1956 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INI: 1957 return null; 1958 1959 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASCII: 1960 return null; 1961 1962 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_USER: 1963 return null; 1964 1965 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASP: 1966 return null; 1967 1968 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SQL: 1969 return null; 1970 1971 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VB: 1972 return null; 1973 1974 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JS: 1975 return null; 1976 1977 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSS: 1978 return null; 1979 1980 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PERL: 1981 return null; 1982 1983 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PYTHON: 1984 return "python.exe"; 1985 1986 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LUA: 1987 return null; 1988 1989 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEX: 1990 return null; 1991 1992 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN: 1993 return null; 1994 1995 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BASH: 1996 return null; 1997 1998 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FLASH: 1999 return null; 2000 2001 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NSIS: 2002 return null; 2003 2004 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TCL: 2005 return null; 2006 2007 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LISP: 2008 return null; 2009 2010 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SCHEME: 2011 return null; 2012 2013 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASM: 2014 return null; 2015 2016 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_DIFF: 2017 return null; 2018 2019 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PROPS: 2020 return null; 2021 2022 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PS: 2023 return null; 2024 2025 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUBY: 2026 return "ruby.exe"; 2027 2028 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SMALLTALK: 2029 return null; 2030 2031 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VHDL: 2032 return null; 2033 2034 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_KIX: 2035 return null; 2036 2037 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AU3: 2038 return null; 2039 2040 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CAML: 2041 return null; 2042 2043 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ADA: 2044 return null; 2045 2046 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VERILOG: 2047 return null; 2048 2049 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MATLAB: 2050 return null; 2051 2052 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_HASKELL: 2053 return null; 2054 2055 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_INNO: 2056 return null; 2057 2058 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SEARCHRESULT: 2059 return null; 2060 2061 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CMAKE: 2062 return null; 2063 2064 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_YAML: 2065 return null; 2066 2067 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COBOL: 2068 return null; 2069 2070 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_GUI4CLI: 2071 return null; 2072 2073 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_D: 2074 return "%HOMEDRIVE%\\D\\dmd2\\windows\\bin\\dmd.exe"; 2075 2076 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_POWERSHELL: 2077 return null; 2078 2079 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_R: 2080 return null; 2081 2082 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSP: 2083 return null; 2084 2085 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_COFFEESCRIPT: 2086 return null; 2087 2088 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JSON: 2089 return null; 2090 2091 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_JAVASCRIPT: 2092 return null; 2093 2094 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTRAN_77: 2095 return null; 2096 2097 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BAANC: 2098 return null; 2099 2100 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SREC: 2101 return null; 2102 2103 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_IHEX: 2104 return null; 2105 2106 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TEHEX: 2107 return null; 2108 2109 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SWIFT: 2110 return null; 2111 2112 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ASN1: 2113 return null; 2114 2115 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_AVS: 2116 return null; 2117 2118 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_BLITZBASIC: 2119 return null; 2120 2121 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_PUREBASIC: 2122 return null; 2123 2124 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FREEBASIC: 2125 return null; 2126 2127 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_CSOUND: 2128 return null; 2129 2130 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ERLANG: 2131 return null; 2132 2133 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_ESCRIPT: 2134 return null; 2135 2136 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_FORTH: 2137 return null; 2138 2139 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_LATEX: 2140 return null; 2141 2142 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_MMIXAL: 2143 return null; 2144 2145 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NIMROD: 2146 return null; 2147 2148 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_NNCRONTAB: 2149 return null; 2150 2151 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_OSCRIPT: 2152 return null; 2153 2154 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REBOL: 2155 return null; 2156 2157 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_REGISTRY: 2158 return null; 2159 2160 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_RUST: 2161 return "rustc.exe"; 2162 2163 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_SPICE: 2164 return null; 2165 2166 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_TXT2TAGS: 2167 return null; 2168 2169 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_VISUALPROLOG: 2170 return null; 2171 2172 case npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType.L_EXTERNAL: 2173 default: 2174 return null; 2175 } 2176 } 2177 2178 /** 2179 * 拡張子からデフォルトの実行ファイル名のPATHを返す 2180 * ToDo: 2181 */ 2182 pure nothrow @safe @nogc 2183 immutable (C)[] default_lang_path(C)(const (C)[] extension) 2184 if (std.traits.isSomeChar!(C)) 2185 2186 do 2187 { 2188 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2189 2190 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang_type = .ext_to_lang(extension); 2191 2192 if (is_known_lang(lang_type)) { 2193 return .default_lang_path!(C)(lang_type); 2194 } 2195 2196 switch (extension) { 2197 case ".dub": 2198 case ".sdl": 2199 return "%HOMEDRIVE%\\D\\dmd2\\windows\\bin\\dub.exe"; 2200 2201 case ".go": 2202 return "%HOMEDRIVE%\\Go\\bin\\go.exe"; 2203 2204 default: 2205 break; 2206 } 2207 2208 return null; 2209 } 2210 2211 template L_EXE_PATH(S, npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 2212 if (std.traits.isSomeString!(S)) 2213 { 2214 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2215 2216 enum S L_EXE_PATH = default_lang_path!(S)(lang); 2217 static assert(L_EXE_PATH.length != 0); 2218 } 2219 2220 pragma(inline, true) 2221 nothrow @nogc 2222 void set_lang(core.sys.windows.windef.HWND _nppHandle, npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang) 2223 2224 do 2225 { 2226 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2227 static import npp_api.pluginfunc.npp_msgs; 2228 2229 if (is_known_lang(lang)) { 2230 npp_api.pluginfunc.npp_msgs.send_NPPM_SETCURRENTLANGTYPE(_nppHandle, lang); 2231 } 2232 } 2233 2234 pragma(inline, true) 2235 nothrow @nogc 2236 void set_lang(C)(core.sys.windows.windef.HWND _nppHandle, const (C)[] extension) 2237 if (std.traits.isSomeChar!(C)) 2238 2239 do 2240 { 2241 static import npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs; 2242 static import npp_api.pluginfunc.npp_msgs; 2243 2244 npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType lang_type = .ext_to_lang(extension); 2245 2246 if (is_known_lang(lang_type)) { 2247 npp_api.pluginfunc.npp_msgs.send_NPPM_SETCURRENTLANGTYPE(_nppHandle, lang_type); 2248 } 2249 } 2250 2251 version (Not_betterC) { 2252 wstring replace_lang_variable(wstring path) 2253 2254 do 2255 { 2256 static import core.sys.windows.winbase; 2257 static import std.algorithm; 2258 static import std.array; 2259 static import npp_api.pluginfunc.string; 2260 static import npp_api.pluginfunc.path; 2261 2262 if ((path == null) || (!std.algorithm.canFind(path, '%'))) { 2263 return path; 2264 } 2265 2266 core.sys.windows.winnt.WCHAR[npp_api.pluginfunc.path.OS_MAX_PATH] buf = '\0'; 2267 2268 if (core.sys.windows.winbase.GetEnvironmentVariableW(&(npp_api.pluginfunc..string.c_wstring!("HOMEDRIVE"w)[0]), &(buf[0]), buf.length) == 0) { 2269 return path; 2270 } 2271 2272 return std.array.replace(path, "%HOMEDRIVE%"w, npp_api.pluginfunc..string.from_stringz(buf)).idup; 2273 } 2274 2275 nothrow 2276 wstring lang_path(lang_id)(lang_id lang) 2277 if (is(lang_id : npp_api.powereditor.misc.pluginsmanager.notepad_plus_msgs.LangType) || is(lang_id : const wchar[])) 2278 2279 do 2280 { 2281 static import std.algorithm; 2282 static import std.path; 2283 static import npp_api.pluginfunc.path; 2284 2285 wstring path = default_lang_path!(wchar)(lang); 2286 2287 if (path == null) { 2288 return null; 2289 } 2290 2291 try { 2292 if (std.algorithm.canFind(path, '%')) { 2293 path = replace_lang_variable(path); 2294 assert(!std.algorithm.canFind(path, '%')); 2295 } 2296 2297 if (!std.path.isAbsolute(path)) { 2298 path = npp_api.pluginfunc.path.search_exe(path); 2299 } 2300 } catch (Exception e) { 2301 } 2302 2303 return path.idup; 2304 } 2305 } 2306 }