├── .gitignore
├── .no-sublime-package
├── Csound
├── .DS_Store
├── Comments (Csound).tmPreferences
├── Context.sublime-menu
├── Csound.sublime-build
├── Csound.sublime-completions
├── Csound.tmLanguage
├── ReadMe.txt
├── opcodes.xml
├── open_in_csound_qt.py
├── popup_hint.py
├── search_in_manual.py
└── statusbar_hint.py
├── LICENSE
├── Main.sublime-menu
├── README 2.md
├── README.md
├── createCsoundDb.py
├── css
├── dark.css
├── default.css
└── light.css
├── db
├── Javascript.json
├── PHP.json
├── Python.json
├── csound.json
└── updatedb.py
├── intellitip.py
├── intellitip.sublime-settings
├── opcodes.txt
└── screenshot.png
/.gitignore:
--------------------------------------------------------------------------------
1 | *.py[cod]
2 |
3 | # C extensions
4 | *.so
5 |
6 | # Packages
7 | *.egg
8 | *.egg-info
9 | dist
10 | build
11 | eggs
12 | parts
13 | bin
14 | var
15 | sdist
16 | develop-eggs
17 | .installed.cfg
18 | lib
19 | lib64
20 | __pycache__
21 |
22 | # Installer logs
23 | pip-log.txt
24 |
25 | # Unit test / coverage reports
26 | .coverage
27 | .tox
28 | nosetests.xml
29 |
30 | # Translations
31 | *.mo
32 |
33 | # Mr Developer
34 | .mr.developer.cfg
35 | .project
36 | .pydevproject
37 |
--------------------------------------------------------------------------------
/.no-sublime-package:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rorywalsh/csoundSublime/41c2a6304bad4d93432ea7c185744e8aae211593/.no-sublime-package
--------------------------------------------------------------------------------
/Csound/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rorywalsh/csoundSublime/41c2a6304bad4d93432ea7c185744e8aae211593/Csound/.DS_Store
--------------------------------------------------------------------------------
/Csound/Comments (Csound).tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Comments
7 | scope
8 | source.csd
9 | settings
10 |
11 | shellVariables
12 |
13 |
14 | name
15 | TM_COMMENT_START
16 | value
17 | ;
18 |
19 |
20 | name
21 | TM_COMMENT_START_2
22 | value
23 | /*
24 |
25 |
26 |
27 | name
28 | TM_COMMENT_END_2
29 | value
30 |
31 | */
32 |
33 |
34 | name
35 | TM_COMMENT_DISABLE_INDENT_2
36 | value
37 | yes
38 |
39 |
40 |
41 | uuid
42 | c5026cfc-974d-443d-8859-7e7a07970d9c
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Csound/Context.sublime-menu:
--------------------------------------------------------------------------------
1 | [
2 | { "command": "search_in_manual" },
3 | { "command": "popup_hint" },
4 | { "command": "open_in_csound_qt" }
5 | ]
6 |
--------------------------------------------------------------------------------
/Csound/Csound.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "windows": {
3 | "cmd": [
4 | "csound.exe",
5 | "-odac",
6 | "--nodisplays",
7 | "$file"],
8 | "selector": "source.csd"
9 | },
10 |
11 | "linux": {
12 | "cmd": [
13 | "/usr/local/bin/csound",
14 | "-odac",
15 | "--nodisplays",
16 | "$file"],
17 | "selector": "source.csd"
18 | },
19 |
20 | "osx": {
21 | "cmd": [
22 | "/usr/local/bin/csound",
23 | "-odac",
24 | "--nodisplays",
25 | "$file"],
26 | "selector": "source.csd"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Csound/Csound.sublime-completions:
--------------------------------------------------------------------------------
1 | {
2 | "scope": "source.csd",
3 |
4 | "completions":
5 | [
6 | "#define",
7 | "#ifdef",
8 | "#ifndef",
9 | "#include",
10 | "#undef",
11 | "0dbfs",
12 | "ATSadd",
13 | "ATSaddnz",
14 | "ATSbufread",
15 | "ATScross",
16 | "ATSinfo",
17 | "ATSinterpread",
18 | "ATSpartialtap",
19 | "ATSread",
20 | "ATSreadnz",
21 | "ATSsinnoi",
22 | "FLbox",
23 | "FLbutBank",
24 | "FLbutton",
25 | "FLcloseButton",
26 | "FLcolor",
27 | "FLcolor2",
28 | "FLcount",
29 | "FLexecButton",
30 | "FLgetsnap",
31 | "FLgroup",
32 | "FLgroupEnd",
33 | "FLgroup_end",
34 | "FLhide",
35 | "FLhvsBox",
36 | "FLhvsBoxSetValue",
37 | "FLjoy",
38 | "FLkeyIn",
39 | "FLknob",
40 | "FLlabel",
41 | "FLloadsnap",
42 | "FLmouse",
43 | "FLpack",
44 | "FLpackEnd",
45 | "FLpack_end",
46 | "FLpanel",
47 | "FLpanelEnd",
48 | "FLpanel_end",
49 | "FLprintk",
50 | "FLprintk2",
51 | "FLroller",
52 | "FLrun",
53 | "FLsavesnap",
54 | "FLscroll",
55 | "FLscrollEnd",
56 | "FLscroll_end",
57 | "FLsetAlign",
58 | "FLsetBox",
59 | "FLsetColor",
60 | "FLsetColor2",
61 | "FLsetFont",
62 | "FLsetPosition",
63 | "FLsetSize",
64 | "FLsetSnapGroup",
65 | "FLsetText",
66 | "FLsetTextColor",
67 | "FLsetTextSize",
68 | "FLsetTextType",
69 | "FLsetVal",
70 | "FLsetVal_i",
71 | "FLsetsnap",
72 | "FLshow",
73 | "FLslidBnk",
74 | "FLslidBnk2",
75 | "FLslidBnk2Set",
76 | "FLslidBnk2Setk",
77 | "FLslidBnkGetHandle",
78 | "FLslidBnkSet",
79 | "FLslidBnkSetk",
80 | "FLslider",
81 | "FLtabs",
82 | "FLtabsEnd",
83 | "FLtabs_end",
84 | "FLtext",
85 | "FLupdate",
86 | "FLvalue",
87 | "FLvkeybd",
88 | "FLvslidBnk",
89 | "FLvslidBnk2",
90 | "FLxyin",
91 | "JackoAudioIn",
92 | "JackoAudioInConnect",
93 | "JackoAudioOut",
94 | "JackoAudioOutConnect",
95 | "JackoFreewheel",
96 | "JackoInfo",
97 | "JackoInit",
98 | "JackoMidiInConnect",
99 | "JackoMidiOut",
100 | "JackoMidiOutConnect",
101 | "JackoNoteOut",
102 | "JackoOn",
103 | "JackoTransport",
104 | "MixerClear",
105 | "MixerGetLevel",
106 | "MixerReceive",
107 | "MixerSend",
108 | "MixerSetLevel",
109 | "MixerSetLevel_i",
110 | "OSCinit",
111 | "OSClisten",
112 | "OSCsend",
113 | "STKBandedWG",
114 | "STKBeeThree",
115 | "STKBlowBotl",
116 | "STKBlowHole",
117 | "STKBowed",
118 | "STKBrass",
119 | "STKClarinet",
120 | "STKDrummer",
121 | "STKFMVoices",
122 | "STKFlute",
123 | "STKHevyMetl",
124 | "STKMandolin",
125 | "STKModalBar",
126 | "STKMoog",
127 | "STKPercFlut",
128 | "STKPlucked",
129 | "STKResonate",
130 | "STKRhodey",
131 | "STKSaxofony",
132 | "STKShakers",
133 | "STKSimple",
134 | "STKSitar",
135 | "STKStifKarp",
136 | "STKTubeBell",
137 | "STKVoicForm",
138 | "STKWhistle",
139 | "STKWurley",
140 | "a",
141 | "abetarand",
142 | "abexprnd",
143 | "abs",
144 | "acauchy",
145 | "active",
146 | "adsr",
147 | "adsyn",
148 | "adsynt",
149 | "adsynt2",
150 | "aexprand",
151 | "aftouch",
152 | "agauss",
153 | "agogobel",
154 | "alinrand",
155 | "alpass",
156 | "alwayson",
157 | "ampdb",
158 | "ampdbfs",
159 | "ampmidi",
160 | "ampmidid",
161 | "apcauchy",
162 | "apoisson",
163 | "apow",
164 | "areson",
165 | "aresonk",
166 | "array",
167 | "atone",
168 | "atonek",
169 | "atonex",
170 | "atrirand",
171 | "aunirand",
172 | "aweibull",
173 | "babo",
174 | "balance",
175 | "bamboo",
176 | "barmodel",
177 | "bbcutm",
178 | "bbcuts",
179 | "betarand",
180 | "bexprnd",
181 | "bformdec",
182 | "bformdec1",
183 | "bformenc",
184 | "bformenc1",
185 | "binit",
186 | "biquad",
187 | "biquada",
188 | "birnd",
189 | "bqrez",
190 | "buchla",
191 | "butbp",
192 | "butbr",
193 | "buthp",
194 | "butlp",
195 | "butterbp",
196 | "butterbr",
197 | "butterhp",
198 | "butterlp",
199 | "button",
200 | "buzz",
201 | "c2r",
202 | "cabasa",
203 | "cauchy",
204 | "cauchyi",
205 | "ceil",
206 | "cell",
207 | "cent",
208 | "centroid",
209 | "ceps",
210 | "cggoto",
211 | "chanctrl",
212 | "changed",
213 | "chani",
214 | "chano",
215 | "chebyshevpoly",
216 | "checkbox",
217 | "chn_S",
218 | "chn_a",
219 | "chn_k",
220 | "chnclear",
221 | "chnexport",
222 | "chnget",
223 | "chnmix",
224 | "chnparams",
225 | "chnrecv",
226 | "chnsend",
227 | "chnset",
228 | "chuap",
229 | "cigoto",
230 | "cingoto",
231 | "ckgoto",
232 | "clear",
233 | "clfilt",
234 | "clip",
235 | "clock",
236 | "clockoff",
237 | "clockon",
238 | "cmplxprod",
239 | "cngoto",
240 | "comb",
241 | "combinv",
242 | "compilecsd",
243 | "compileorc",
244 | "compilestr",
245 | "compress",
246 | "connect",
247 | "control",
248 | "convle",
249 | "convolve",
250 | "copy2ftab",
251 | "copy2ttab",
252 | "copya2ftab",
253 | "copyf2array",
254 | "cos",
255 | "cosh",
256 | "cosinv",
257 | "cosseg",
258 | "cossegb",
259 | "cossegr",
260 | "cps2pch",
261 | "cpsmidi",
262 | "cpsmidib",
263 | "cpsmidinn",
264 | "cpsoct",
265 | "cpspch",
266 | "cpstmid",
267 | "cpstun",
268 | "cpstuni",
269 | "cpsxpch",
270 | "cpumeter",
271 | "cpuprc",
272 | "cross2",
273 | "crossfm",
274 | "crossfmi",
275 | "crossfmpm",
276 | "crossfmpmi",
277 | "crosspm",
278 | "crosspmi",
279 | "crunch",
280 | "ctlchn",
281 | "ctrl14",
282 | "ctrl21",
283 | "ctrl7",
284 | "ctrlinit",
285 | "cuserrnd",
286 | "dam",
287 | "date",
288 | "dates",
289 | "db",
290 | "dbamp",
291 | "dbfsamp",
292 | "dcblock",
293 | "dcblock2",
294 | "dconv",
295 | "delay",
296 | "delay1",
297 | "delayk",
298 | "delayr",
299 | "delayw",
300 | "deltap",
301 | "deltap3",
302 | "deltapi",
303 | "deltapn",
304 | "deltapx",
305 | "deltapxw",
306 | "denorm",
307 | "diff",
308 | "diskgrain",
309 | "diskin",
310 | "diskin2",
311 | "dispfft",
312 | "display",
313 | "distort",
314 | "distort1",
315 | "divz",
316 | "doppler",
317 | "downsamp",
318 | "dripwater",
319 | "dssiactivate",
320 | "dssiaudio",
321 | "dssictls",
322 | "dssiinit",
323 | "dssilist",
324 | "dumpk",
325 | "dumpk2",
326 | "dumpk3",
327 | "dumpk4",
328 | "duserrnd",
329 | "dust",
330 | "dust2",
331 | "else",
332 | "elseif",
333 | "endif",
334 | "endin",
335 | "endop",
336 | "envlpx",
337 | "envlpxr",
338 | "ephasor",
339 | "eqfil",
340 | "evalstr",
341 | "event",
342 | "event_i",
343 | "exciter",
344 | "exitnow",
345 | "exp",
346 | "expcurve",
347 | "expon",
348 | "exprand",
349 | "exprandi",
350 | "expseg",
351 | "expsega",
352 | "expsegb",
353 | "expsegba",
354 | "expsegr",
355 | "fareylen",
356 | "fareyleni",
357 | "faustaudio",
358 | "faustcompile",
359 | "faustctl",
360 | "faustgen",
361 | "fft",
362 | "fftinv",
363 | "ficlose",
364 | "filebit",
365 | "filelen",
366 | "filenchnls",
367 | "filepeak",
368 | "filesr",
369 | "filevalid",
370 | "fillarray",
371 | "filter2",
372 | "fin",
373 | "fini",
374 | "fink",
375 | "fiopen",
376 | "flanger",
377 | "flashtxt",
378 | "flooper",
379 | "flooper2",
380 | "floor",
381 | "fluidAllOut",
382 | "fluidCCi",
383 | "fluidCCk",
384 | "fluidControl",
385 | "fluidEngine",
386 | "fluidLoad",
387 | "fluidNote",
388 | "fluidOut",
389 | "fluidProgramSelect",
390 | "fluidSetInterpMethod",
391 | "fmb3",
392 | "fmbell",
393 | "fmmetal",
394 | "fmpercfl",
395 | "fmrhode",
396 | "fmvoice",
397 | "fmwurlie",
398 | "fof",
399 | "fof2",
400 | "fofilter",
401 | "fog",
402 | "fold",
403 | "follow",
404 | "follow2",
405 | "foscil",
406 | "foscili",
407 | "fout",
408 | "fouti",
409 | "foutir",
410 | "foutk",
411 | "fprintks",
412 | "fprints",
413 | "frac",
414 | "fractalnoise",
415 | "framebuffer",
416 | "freeverb",
417 | "ftchnls",
418 | "ftconv",
419 | "ftcps",
420 | "ftfree",
421 | "ftgen",
422 | "ftgenonce",
423 | "ftgentmp",
424 | "ftlen",
425 | "ftload",
426 | "ftloadk",
427 | "ftlptim",
428 | "ftmorf",
429 | "ftresize",
430 | "ftresizei",
431 | "ftsave",
432 | "ftsavek",
433 | "ftsr",
434 | "gain",
435 | "gainslider",
436 | "gauss",
437 | "gaussi",
438 | "gausstrig",
439 | "gbuzz",
440 | "genarray",
441 | "genarray_i",
442 | "gendy",
443 | "gendyc",
444 | "gendyx",
445 | "getcfg",
446 | "getcol",
447 | "getrow",
448 | "getseed",
449 | "gogobel",
450 | "goto",
451 | "grain",
452 | "grain2",
453 | "grain3",
454 | "granule",
455 | "guiro",
456 | "harmon",
457 | "harmon2",
458 | "harmon3",
459 | "harmon4",
460 | "hdf5read",
461 | "hdf5write",
462 | "hilbert",
463 | "hrtfearly",
464 | "hrtfer",
465 | "hrtfmove",
466 | "hrtfmove2",
467 | "hrtfreverb",
468 | "hrtfstat",
469 | "hsboscil",
470 | "hvs1",
471 | "hvs2",
472 | "hvs3",
473 | "i",
474 | "ibetarand",
475 | "ibexprnd",
476 | "icauchy",
477 | "iceps",
478 | "ictrl14",
479 | "ictrl21",
480 | "ictrl7",
481 | "iexprand",
482 | "if",
483 | "igauss",
484 | "igoto",
485 | "ihold",
486 | "ilinrand",
487 | "imagecreate",
488 | "imagefree",
489 | "imagegetpixel",
490 | "imageload",
491 | "imagesave",
492 | "imagesetpixel",
493 | "imagesize",
494 | "imidic14",
495 | "imidic21",
496 | "imidic7",
497 | "in",
498 | "in32",
499 | "inch",
500 | "inh",
501 | "init",
502 | "initc14",
503 | "initc21",
504 | "initc7",
505 | "inleta",
506 | "inletf",
507 | "inletk",
508 | "inletkid",
509 | "inletv",
510 | "ino",
511 | "inq",
512 | "inrg",
513 | "ins",
514 | "insglobal",
515 | "insremot",
516 | "instimek",
517 | "instimes",
518 | "instr",
519 | "int",
520 | "integ",
521 | "interp",
522 | "invalue",
523 | "inx",
524 | "inz",
525 | "ioff",
526 | "ion",
527 | "iondur",
528 | "iondur2",
529 | "ioutat",
530 | "ioutc",
531 | "ioutc14",
532 | "ioutpat",
533 | "ioutpb",
534 | "ioutpc",
535 | "ipcauchy",
536 | "ipoisson",
537 | "ipow",
538 | "is16b14",
539 | "is32b14",
540 | "islider16",
541 | "islider32",
542 | "islider64",
543 | "islider8",
544 | "itablecopy",
545 | "itablegpw",
546 | "itablemix",
547 | "itablew",
548 | "itrirand",
549 | "iunirand",
550 | "iweibull",
551 | "jacktransport",
552 | "jitter",
553 | "jitter2",
554 | "jspline",
555 | "k",
556 | "kbetarand",
557 | "kbexprnd",
558 | "kcauchy",
559 | "kdump",
560 | "kdump2",
561 | "kdump3",
562 | "kdump4",
563 | "kexprand",
564 | "kfilter2",
565 | "kgauss",
566 | "kgoto",
567 | "klinrand",
568 | "kon",
569 | "koutat",
570 | "koutc",
571 | "koutc14",
572 | "koutpat",
573 | "koutpb",
574 | "koutpc",
575 | "kpcauchy",
576 | "kpoisson",
577 | "kpow",
578 | "kr",
579 | "kread",
580 | "kread2",
581 | "kread3",
582 | "kread4",
583 | "ksmps",
584 | "ktableseg",
585 | "ktrirand",
586 | "kunirand",
587 | "kweibull",
588 | "lenarray",
589 | "lentab",
590 | "lfo",
591 | "limit",
592 | "line",
593 | "linen",
594 | "linenr",
595 | "lineto",
596 | "linrand",
597 | "linseg",
598 | "linsegb",
599 | "linsegr",
600 | "locsend",
601 | "locsig",
602 | "log",
603 | "log10",
604 | "log2",
605 | "logbtwo",
606 | "logcurve",
607 | "loop_ge",
608 | "loop_gt",
609 | "loop_le",
610 | "loop_lt",
611 | "loopseg",
612 | "loopsegp",
613 | "looptseg",
614 | "loopxseg",
615 | "lorenz",
616 | "lorismorph",
617 | "lorisplay",
618 | "lorisread",
619 | "loscil",
620 | "loscil3",
621 | "loscilx",
622 | "lowpass2",
623 | "lowres",
624 | "lowresx",
625 | "lpf18",
626 | "lpform",
627 | "lpfreson",
628 | "lphasor",
629 | "lpinterp",
630 | "lposcil",
631 | "lposcil3",
632 | "lposcila",
633 | "lposcilsa",
634 | "lposcilsa2",
635 | "lpread",
636 | "lpreson",
637 | "lpshold",
638 | "lpsholdp",
639 | "lpslot",
640 | "lua_exec",
641 | "lua_opcall",
642 | "lua_opdef",
643 | "mac",
644 | "maca",
645 | "madsr",
646 | "mags",
647 | "mandel",
648 | "mandol",
649 | "maparray",
650 | "maparray_i",
651 | "marimba",
652 | "massign",
653 | "max",
654 | "max_k",
655 | "maxabs",
656 | "maxabsaccum",
657 | "maxaccum",
658 | "maxalloc",
659 | "maxarray",
660 | "maxtab",
661 | "mclock",
662 | "mdelay",
663 | "median",
664 | "mediank",
665 | "metro",
666 | "midglobal",
667 | "midic14",
668 | "midic21",
669 | "midic7",
670 | "midichannelaftertouch",
671 | "midichn",
672 | "midicontrolchange",
673 | "midictrl",
674 | "mididefault",
675 | "midifilestatus",
676 | "midiin",
677 | "midinoteoff",
678 | "midinoteoncps",
679 | "midinoteonkey",
680 | "midinoteonoct",
681 | "midinoteonpch",
682 | "midion",
683 | "midion2",
684 | "midiout",
685 | "midipgm",
686 | "midipitchbend",
687 | "midipolyaftertouch",
688 | "midiprogramchange",
689 | "miditempo",
690 | "midremot",
691 | "min",
692 | "minabs",
693 | "minabsaccum",
694 | "minaccum",
695 | "minarray",
696 | "mincer",
697 | "mintab",
698 | "mirror",
699 | "mode",
700 | "modmatrix",
701 | "monitor",
702 | "moog",
703 | "moogladder",
704 | "moogvcf",
705 | "moogvcf2",
706 | "moscil",
707 | "mp3bitrate",
708 | "mp3in",
709 | "mp3len",
710 | "mp3nchnls",
711 | "mp3sr",
712 | "mpulse",
713 | "mrtmsg",
714 | "multitap",
715 | "multtab",
716 | "mute",
717 | "mxadsr",
718 | "nchnls",
719 | "nchnls_i",
720 | "nestedap",
721 | "nlalp",
722 | "nlfilt",
723 | "nlfilt2",
724 | "noise",
725 | "noteoff",
726 | "noteon",
727 | "noteondur",
728 | "noteondur2",
729 | "notnum",
730 | "nreverb",
731 | "nrpn",
732 | "nsamp",
733 | "nstance",
734 | "nstrnum",
735 | "ntrpol",
736 | "octave",
737 | "octcps",
738 | "octmidi",
739 | "octmidib",
740 | "octmidinn",
741 | "octpch",
742 | "olabuffer",
743 | "opcode",
744 | "oscbnk",
745 | "oscil",
746 | "oscil1",
747 | "oscil1i",
748 | "oscil3",
749 | "oscili",
750 | "oscilikt",
751 | "osciliktp",
752 | "oscilikts",
753 | "osciln",
754 | "oscils",
755 | "oscilx",
756 | "out",
757 | "out32",
758 | "outc",
759 | "outch",
760 | "outh",
761 | "outiat",
762 | "outic",
763 | "outic14",
764 | "outipat",
765 | "outipb",
766 | "outipc",
767 | "outkat",
768 | "outkc",
769 | "outkc14",
770 | "outkpat",
771 | "outkpb",
772 | "outkpc",
773 | "outleta",
774 | "outletf",
775 | "outletk",
776 | "outletkid",
777 | "outletv",
778 | "outo",
779 | "outq",
780 | "outq1",
781 | "outq2",
782 | "outq3",
783 | "outq4",
784 | "outrg",
785 | "outs",
786 | "outs1",
787 | "outs2",
788 | "outvalue",
789 | "outx",
790 | "outz",
791 | "p",
792 | "p5gconnect",
793 | "p5gdata",
794 | "pan",
795 | "pan2",
796 | "pareq",
797 | "part2txt",
798 | "partials",
799 | "partikkel",
800 | "partikkelget",
801 | "partikkelset",
802 | "partikkelsync",
803 | "passign",
804 | "pcauchy",
805 | "pchbend",
806 | "pchmidi",
807 | "pchmidib",
808 | "pchmidinn",
809 | "pchoct",
810 | "pconvolve",
811 | "pcount",
812 | "pdclip",
813 | "pdhalf",
814 | "pdhalfy",
815 | "peak",
816 | "peakk",
817 | "pgmassign",
818 | "pgmchn",
819 | "phaser1",
820 | "phaser2",
821 | "phasor",
822 | "phasorbnk",
823 | "phs",
824 | "pindex",
825 | "pinker",
826 | "pinkish",
827 | "pitch",
828 | "pitchac",
829 | "pitchamdf",
830 | "planet",
831 | "platerev",
832 | "plltrack",
833 | "pluck",
834 | "plustab",
835 | "plyexect",
836 | "poisson",
837 | "pol2rect",
838 | "polyaft",
839 | "polynomial",
840 | "pop",
841 | "pop_f",
842 | "port",
843 | "portk",
844 | "poscil",
845 | "poscil3",
846 | "pow",
847 | "powershape",
848 | "powoftwo",
849 | "prealloc",
850 | "prepiano",
851 | "print",
852 | "print_type",
853 | "printf",
854 | "printf_i",
855 | "printk",
856 | "printk2",
857 | "printks",
858 | "printks2",
859 | "prints",
860 | "product",
861 | "pset",
862 | "ptable",
863 | "ptable3",
864 | "ptablei",
865 | "ptableiw",
866 | "ptablew",
867 | "ptrack",
868 | "push",
869 | "push_f",
870 | "puts",
871 | "pvadd",
872 | "pvbufread",
873 | "pvcross",
874 | "pvinterp",
875 | "pvoc",
876 | "pvread",
877 | "pvs2array",
878 | "pvs2tab",
879 | "pvsadsyn",
880 | "pvsanal",
881 | "pvsarp",
882 | "pvsbandp",
883 | "pvsbandr",
884 | "pvsbin",
885 | "pvsblur",
886 | "pvsbuffer",
887 | "pvsbufread",
888 | "pvsbufread2",
889 | "pvscale",
890 | "pvscent",
891 | "pvsceps",
892 | "pvscross",
893 | "pvsdemix",
894 | "pvsdiskin",
895 | "pvsdisp",
896 | "pvsenvftw",
897 | "pvsfilter",
898 | "pvsfread",
899 | "pvsfreeze",
900 | "pvsfromarray",
901 | "pvsftr",
902 | "pvsftw",
903 | "pvsfwrite",
904 | "pvsgain",
905 | "pvsgendy",
906 | "pvshift",
907 | "pvsifd",
908 | "pvsin",
909 | "pvsinfo",
910 | "pvsinit",
911 | "pvslock",
912 | "pvsmaska",
913 | "pvsmix",
914 | "pvsmooth",
915 | "pvsmorph",
916 | "pvsosc",
917 | "pvsout",
918 | "pvspitch",
919 | "pvstanal",
920 | "pvstencil",
921 | "pvsvoc",
922 | "pvswarp",
923 | "pvsynth",
924 | "pwd",
925 | "pyassign",
926 | "pyassigni",
927 | "pyassignt",
928 | "pycall",
929 | "pycall1",
930 | "pycall1i",
931 | "pycall1t",
932 | "pycall2",
933 | "pycall2i",
934 | "pycall2t",
935 | "pycall3",
936 | "pycall3i",
937 | "pycall3t",
938 | "pycall4",
939 | "pycall4i",
940 | "pycall4t",
941 | "pycall5",
942 | "pycall5i",
943 | "pycall5t",
944 | "pycall6",
945 | "pycall6i",
946 | "pycall6t",
947 | "pycall7",
948 | "pycall7i",
949 | "pycall7t",
950 | "pycall8",
951 | "pycall8i",
952 | "pycall8t",
953 | "pycalli",
954 | "pycalln",
955 | "pycallni",
956 | "pycallt",
957 | "pyeval",
958 | "pyevali",
959 | "pyevalt",
960 | "pyexec",
961 | "pyexeci",
962 | "pyexect",
963 | "pyinit",
964 | "pylassign",
965 | "pylassigni",
966 | "pylassignt",
967 | "pylcall",
968 | "pylcall1",
969 | "pylcall1i",
970 | "pylcall1t",
971 | "pylcall2",
972 | "pylcall2i",
973 | "pylcall2t",
974 | "pylcall3",
975 | "pylcall3i",
976 | "pylcall3t",
977 | "pylcall4",
978 | "pylcall4i",
979 | "pylcall4t",
980 | "pylcall5",
981 | "pylcall5i",
982 | "pylcall5t",
983 | "pylcall6",
984 | "pylcall6i",
985 | "pylcall6t",
986 | "pylcall7",
987 | "pylcall7i",
988 | "pylcall7t",
989 | "pylcall8",
990 | "pylcall8i",
991 | "pylcall8t",
992 | "pylcalli",
993 | "pylcalln",
994 | "pylcallni",
995 | "pylcallt",
996 | "pyleval",
997 | "pylevali",
998 | "pylevalt",
999 | "pylexec",
1000 | "pylexeci",
1001 | "pylexect",
1002 | "pylrun",
1003 | "pylruni",
1004 | "pylrunt",
1005 | "pyrun",
1006 | "pyruni",
1007 | "pyrunt",
1008 | "qinf",
1009 | "qnan",
1010 | "r2c",
1011 | "rand",
1012 | "randh",
1013 | "randi",
1014 | "random",
1015 | "randomh",
1016 | "randomi",
1017 | "rbjeq",
1018 | "readclock",
1019 | "readf",
1020 | "readfi",
1021 | "readk",
1022 | "readk2",
1023 | "readk3",
1024 | "readk4",
1025 | "readks",
1026 | "readscore",
1027 | "readscratch",
1028 | "rect2pol",
1029 | "reinit",
1030 | "release",
1031 | "remoteport",
1032 | "remove",
1033 | "repluck",
1034 | "reson",
1035 | "resonk",
1036 | "resonr",
1037 | "resonx",
1038 | "resonxk",
1039 | "resony",
1040 | "resonz",
1041 | "resyn",
1042 | "return",
1043 | "reverb",
1044 | "reverb2",
1045 | "reverbsc",
1046 | "rewindscore",
1047 | "rezzy",
1048 | "rfft",
1049 | "rifft",
1050 | "rigoto",
1051 | "rireturn",
1052 | "rms",
1053 | "rnd",
1054 | "rnd31",
1055 | "round",
1056 | "rspline",
1057 | "rtclock",
1058 | "s16b14",
1059 | "s32b14",
1060 | "samphold",
1061 | "sandpaper",
1062 | "scale",
1063 | "scalearray",
1064 | "scalet",
1065 | "scanhammer",
1066 | "scans",
1067 | "scantable",
1068 | "scanu",
1069 | "schedkwhen",
1070 | "schedkwhennamed",
1071 | "schedule",
1072 | "schedwhen",
1073 | "scoreline",
1074 | "scoreline_i",
1075 | "seed",
1076 | "sekere",
1077 | "semitone",
1078 | "sense",
1079 | "sensekey",
1080 | "seqtime",
1081 | "seqtime2",
1082 | "serialBegin",
1083 | "serialEnd",
1084 | "serialFlush",
1085 | "serialPrint",
1086 | "serialRead",
1087 | "serialWrite",
1088 | "serialWrite_i",
1089 | "setcol",
1090 | "setctrl",
1091 | "setksmps",
1092 | "setrow",
1093 | "setscorepos",
1094 | "sfilist",
1095 | "sfinstr",
1096 | "sfinstr3",
1097 | "sfinstr3m",
1098 | "sfinstrm",
1099 | "sfload",
1100 | "sflooper",
1101 | "sfpassign",
1102 | "sfplay",
1103 | "sfplay3",
1104 | "sfplay3m",
1105 | "sfplaym",
1106 | "sfplist",
1107 | "sfpreset",
1108 | "shaker",
1109 | "shiftin",
1110 | "shiftout",
1111 | "signalflowgraph",
1112 | "signum",
1113 | "sin",
1114 | "sinh",
1115 | "sininv",
1116 | "sinsyn",
1117 | "sleighbells",
1118 | "slicearray",
1119 | "slider16",
1120 | "slider16f",
1121 | "slider16table",
1122 | "slider16tablef",
1123 | "slider32",
1124 | "slider32f",
1125 | "slider32table",
1126 | "slider32tablef",
1127 | "slider64",
1128 | "slider64f",
1129 | "slider64table",
1130 | "slider64tablef",
1131 | "slider8",
1132 | "slider8f",
1133 | "slider8table",
1134 | "slider8tablef",
1135 | "sliderKawai",
1136 | "sndload",
1137 | "sndloop",
1138 | "sndwarp",
1139 | "sndwarpst",
1140 | "sockrecv",
1141 | "sockrecvs",
1142 | "socksend",
1143 | "socksends",
1144 | "soundin",
1145 | "soundout",
1146 | "soundouts",
1147 | "space",
1148 | "spat3d",
1149 | "spat3di",
1150 | "spat3dt",
1151 | "spdist",
1152 | "specaddm",
1153 | "specdiff",
1154 | "specdisp",
1155 | "specfilt",
1156 | "spechist",
1157 | "specptrk",
1158 | "specscal",
1159 | "specsum",
1160 | "spectrum",
1161 | "splitrig",
1162 | "sprintf",
1163 | "sprintfk",
1164 | "spsend",
1165 | "sqrt",
1166 | "sr",
1167 | "stack",
1168 | "statevar",
1169 | "stix",
1170 | "strcat",
1171 | "strcatk",
1172 | "strchar",
1173 | "strchark",
1174 | "strcmp",
1175 | "strcmpk",
1176 | "strcpy",
1177 | "strcpyk",
1178 | "strecv",
1179 | "streson",
1180 | "strfromurl",
1181 | "strget",
1182 | "strindex",
1183 | "strindexk",
1184 | "strlen",
1185 | "strlenk",
1186 | "strlower",
1187 | "strlowerk",
1188 | "strrindex",
1189 | "strrindexk",
1190 | "strset",
1191 | "strsub",
1192 | "strsubk",
1193 | "strtod",
1194 | "strtodk",
1195 | "strtol",
1196 | "strtolk",
1197 | "strupper",
1198 | "strupperk",
1199 | "stsend",
1200 | "subinstr",
1201 | "subinstrinit",
1202 | "sum",
1203 | "sumarray",
1204 | "sumtab",
1205 | "svfilter",
1206 | "syncgrain",
1207 | "syncloop",
1208 | "syncphasor",
1209 | "system",
1210 | "system_i",
1211 | "tab",
1212 | "tab2pvs",
1213 | "tab_i",
1214 | "tabgen",
1215 | "tabifd",
1216 | "table",
1217 | "table3",
1218 | "table3kt",
1219 | "tablecopy",
1220 | "tablefilter",
1221 | "tablefilteri",
1222 | "tablegpw",
1223 | "tablei",
1224 | "tableicopy",
1225 | "tableigpw",
1226 | "tableikt",
1227 | "tableimix",
1228 | "tableiw",
1229 | "tablekt",
1230 | "tablemix",
1231 | "tableng",
1232 | "tablera",
1233 | "tableseg",
1234 | "tableshuffle",
1235 | "tableshufflei",
1236 | "tablew",
1237 | "tablewa",
1238 | "tablewkt",
1239 | "tablexkt",
1240 | "tablexseg",
1241 | "tabmap",
1242 | "tabmap_i",
1243 | "tabmorph",
1244 | "tabmorpha",
1245 | "tabmorphak",
1246 | "tabmorphi",
1247 | "tabplay",
1248 | "tabrec",
1249 | "tabslice",
1250 | "tabsum",
1251 | "tabw",
1252 | "tabw_i",
1253 | "tambourine",
1254 | "tan",
1255 | "tanh",
1256 | "taninv",
1257 | "taninv2",
1258 | "tb",
1259 | "tb0",
1260 | "tb0_init",
1261 | "tb1",
1262 | "tb10",
1263 | "tb10_init",
1264 | "tb11",
1265 | "tb11_init",
1266 | "tb12",
1267 | "tb12_init",
1268 | "tb13",
1269 | "tb13_init",
1270 | "tb14",
1271 | "tb14_init",
1272 | "tb15",
1273 | "tb15_init",
1274 | "tb1_init",
1275 | "tb2",
1276 | "tb2_init",
1277 | "tb3",
1278 | "tb3_init",
1279 | "tb4",
1280 | "tb4_init",
1281 | "tb5",
1282 | "tb5_init",
1283 | "tb6",
1284 | "tb6_init",
1285 | "tb7",
1286 | "tb7_init",
1287 | "tb8",
1288 | "tb8_init",
1289 | "tb9",
1290 | "tb9_init",
1291 | "tbvcf",
1292 | "tempest",
1293 | "tempo",
1294 | "temposcal",
1295 | "tempoval",
1296 | "then",
1297 | "tigoto",
1298 | "timedseq",
1299 | "timeinstk",
1300 | "timeinsts",
1301 | "timek",
1302 | "times",
1303 | "timout",
1304 | "tival",
1305 | "tlineto",
1306 | "tone",
1307 | "tonek",
1308 | "tonex",
1309 | "tradsyn",
1310 | "trandom",
1311 | "transeg",
1312 | "transegb",
1313 | "transegr",
1314 | "trcross",
1315 | "trfilter",
1316 | "trhighest",
1317 | "trigger",
1318 | "trigseq",
1319 | "trirand",
1320 | "trlowest",
1321 | "trmix",
1322 | "trscale",
1323 | "trshift",
1324 | "trsplit",
1325 | "turnoff",
1326 | "turnoff2",
1327 | "turnon",
1328 | "unirand",
1329 | "until",
1330 | "unwrap",
1331 | "upsamp",
1332 | "urandom",
1333 | "urd",
1334 | "vactrol",
1335 | "vadd",
1336 | "vadd_i",
1337 | "vaddv",
1338 | "vaddv_i",
1339 | "vaget",
1340 | "valpass",
1341 | "vaset",
1342 | "vbap",
1343 | "vbap16",
1344 | "vbap16move",
1345 | "vbap4",
1346 | "vbap4move",
1347 | "vbap8",
1348 | "vbap8move",
1349 | "vbapg",
1350 | "vbapgmove",
1351 | "vbaplsinit",
1352 | "vbapmove",
1353 | "vbapz",
1354 | "vbapzmove",
1355 | "vcella",
1356 | "vco",
1357 | "vco2",
1358 | "vco2ft",
1359 | "vco2ift",
1360 | "vco2init",
1361 | "vcomb",
1362 | "vcopy",
1363 | "vcopy_i",
1364 | "vdel_k",
1365 | "vdelay",
1366 | "vdelay3",
1367 | "vdelayk",
1368 | "vdelayx",
1369 | "vdelayxq",
1370 | "vdelayxs",
1371 | "vdelayxw",
1372 | "vdelayxwq",
1373 | "vdelayxws",
1374 | "vdivv",
1375 | "vdivv_i",
1376 | "vecdelay",
1377 | "veloc",
1378 | "vexp",
1379 | "vexp_i",
1380 | "vexpseg",
1381 | "vexpv",
1382 | "vexpv_i",
1383 | "vibes",
1384 | "vibr",
1385 | "vibrato",
1386 | "vincr",
1387 | "vlimit",
1388 | "vlinseg",
1389 | "vlowres",
1390 | "vmap",
1391 | "vmirror",
1392 | "vmult",
1393 | "vmult_i",
1394 | "vmultv",
1395 | "vmultv_i",
1396 | "voice",
1397 | "vosim",
1398 | "vphaseseg",
1399 | "vport",
1400 | "vpow",
1401 | "vpow_i",
1402 | "vpowv",
1403 | "vpowv_i",
1404 | "vpvoc",
1405 | "vrandh",
1406 | "vrandi",
1407 | "vstaudio",
1408 | "vstaudiog",
1409 | "vstbankload",
1410 | "vstedit",
1411 | "vstinfo",
1412 | "vstinit",
1413 | "vstmidiout",
1414 | "vstnote",
1415 | "vstparamget",
1416 | "vstparamset",
1417 | "vstprogset",
1418 | "vsubv",
1419 | "vsubv_i",
1420 | "vtaba",
1421 | "vtabi",
1422 | "vtabk",
1423 | "vtable1k",
1424 | "vtablea",
1425 | "vtablei",
1426 | "vtablek",
1427 | "vtablewa",
1428 | "vtablewi",
1429 | "vtablewk",
1430 | "vtabwa",
1431 | "vtabwi",
1432 | "vtabwk",
1433 | "vwrap",
1434 | "waveset",
1435 | "weibull",
1436 | "wgbow",
1437 | "wgbowedbar",
1438 | "wgbrass",
1439 | "wgclar",
1440 | "wgflute",
1441 | "wgpluck",
1442 | "wgpluck2",
1443 | "wguide1",
1444 | "wguide2",
1445 | "wiiconnect",
1446 | "wiidata",
1447 | "wiirange",
1448 | "wiisend",
1449 | "window",
1450 | "wrap",
1451 | "writescratch",
1452 | "wterrain",
1453 | "xadsr",
1454 | "xin",
1455 | "xout",
1456 | "xscanmap",
1457 | "xscans",
1458 | "xscansmap",
1459 | "xscanu",
1460 | "xtratim",
1461 | "xyin",
1462 | "zacl",
1463 | "zakinit",
1464 | "zamod",
1465 | "zar",
1466 | "zarg",
1467 | "zaw",
1468 | "zawm",
1469 | "zfilter2",
1470 | "zir",
1471 | "ziw",
1472 | "ziwm",
1473 | "zkcl",
1474 | "zkmod",
1475 | "zkr",
1476 | "zkw",
1477 | "zkwm"
1478 | ]
1479 | }
1480 |
--------------------------------------------------------------------------------
/Csound/Csound.tmLanguage:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | fileTypes
6 |
7 | csd
8 |
9 | name
10 | Csound
11 | patterns
12 |
13 |
14 | comment
15 | macro
16 | match
17 | ((#|\$)[A-Za-z0-9_]+\b|#)
18 | name
19 | entity.name.function.csd
20 |
21 |
22 | comment
23 | p-field
24 | match
25 | \bp[0-9_]+\b
26 | name
27 | constant.character.csd
28 |
29 |
30 | comment
31 | xml tags
32 | match
33 | (\<(/?[^\>]+)\>)
34 | name
35 | entity.name.tag.csd
36 |
37 |
38 | comment
39 | header opcodes
40 | match
41 | \b(sr|kr|ksmps|nchnls|0dbfs)\b
42 | name
43 | constant.language.csd
44 |
45 |
46 | comment
47 | single line comment
48 | match
49 | (;).*$\n?
50 | name
51 | comment.line.double-slash.csd
52 |
53 |
54 | begin
55 | /\*
56 | captures
57 |
58 | 0
59 |
60 | name
61 | punctuation.definition.comment.csd
62 |
63 |
64 | comment
65 | multi line comment
66 | end
67 | \*/
68 | name
69 | comment.block.csd
70 |
71 |
72 | begin
73 | "
74 | comment
75 | string
76 | end
77 | "
78 | name
79 | string.quoted.double.csd
80 |
81 |
82 | comment
83 | instr & UDO
84 | match
85 | \b(instr|endin|opcode|endop)\b
86 | name
87 | entity.name.tag.csd
88 |
89 |
90 | comment
91 | opcodes
92 | match
93 | \b(ATSadd|ATSaddnz|ATSbufread|ATScross|ATSinfo|ATSinterpread|ATSpartialtap|ATSread|ATSreadnz|ATSsinnoi|FLbox|FLbutBank|FLbutton|FLcloseButton|FLcolor|FLcolor2|FLcount|FLexecButton|FLgetsnap|FLgroup|FLgroupEnd|FLgroup_end|FLhide|FLhvsBox|FLhvsBoxSetValue|FLjoy|FLkeyIn|FLknob|FLlabel|FLloadsnap|FLmouse|FLpack|FLpackEnd|FLpack_end|FLpanel|FLpanelEnd|FLpanel_end|FLprintk|FLprintk2|FLroller|FLrun|FLsavesnap|FLscroll|FLscrollEnd|FLscroll_end|FLsetAlign|FLsetBox|FLsetColor|FLsetColor2|FLsetFont|FLsetPosition|FLsetSize|FLsetSnapGroup|FLsetText|FLsetTextColor|FLsetTextSize|FLsetTextType|FLsetVal|FLsetVal_i|FLsetsnap|FLshow|FLslidBnk|FLslidBnk2|FLslidBnk2Set|FLslidBnk2Setk|FLslidBnkGetHandle|FLslidBnkSet|FLslidBnkSetk|FLslider|FLtabs|FLtabsEnd|FLtabs_end|FLtext|FLupdate|FLvalue|FLvkeybd|FLvslidBnk|FLvslidBnk2|FLxyin|JackoAudioIn|JackoAudioInConnect|JackoAudioOut|JackoAudioOutConnect|JackoFreewheel|JackoInfo|JackoInit|JackoMidiInConnect|JackoMidiOut|JackoMidiOutConnect|JackoNoteOut|JackoOn|JackoTransport|MixerClear|MixerGetLevel|MixerReceive|MixerSend|MixerSetLevel|MixerSetLevel_i|OSCinit|OSClisten|OSCsend|STKBandedWG|STKBeeThree|STKBlowBotl|STKBlowHole|STKBowed|STKBrass|STKClarinet|STKDrummer|STKFMVoices|STKFlute|STKHevyMetl|STKMandolin|STKModalBar|STKMoog|STKPercFlut|STKPlucked|STKResonate|STKRhodey|STKSaxofony|STKShakers|STKSimple|STKSitar|STKStifKarp|STKTubeBell|STKVoicForm|STKWhistle|STKWurley|a|abetarand|abexprnd|abs|acauchy|active|adsr|adsyn|adsynt|adsynt2|aexprand|aftouch|agauss|agogobel|alinrand|alpass|alwayson|ampdb|ampdbfs|ampmidi|ampmidid|apcauchy|apoisson|apow|areson|aresonk|array|atone|atonek|atonex|atrirand|aunirand|aweibull|babo|balance|bamboo|barmodel|bbcutm|bbcuts|betarand|bexprnd|bformdec|bformdec1|bformenc|bformenc1|binit|biquad|biquada|birnd|bqrez|buchla|butbp|butbr|buthp|butlp|butterbp|butterbr|butterhp|butterlp|button|buzz|c2r|cabasa|cauchy|cauchyi|ceil|cell|cent|centroid|ceps|cggoto|chanctrl|changed|chani|chano|chebyshevpoly|checkbox|chn_S|chn_a|chn_k|chnclear|chnexport|chnget|chnmix|chnparams|chnrecv|chnsend|chnset|chuap|cigoto|cingoto|ckgoto|clear|clfilt|clip|clock|clockoff|clockon|cmplxprod|cngoto|comb|combinv|compilecsd|compileorc|compilestr|compress|connect|control|convle|convolve|copy2ftab|copy2ttab|copya2ftab|copyf2array|cos|cosh|cosinv|cosseg|cossegb|cossegr|cps2pch|cpsmidi|cpsmidib|cpsmidinn|cpsoct|cpspch|cpstmid|cpstun|cpstuni|cpsxpch|cpumeter|cpuprc|cross2|crossfm|crossfmi|crossfmpm|crossfmpmi|crosspm|crosspmi|crunch|ctlchn|ctrl14|ctrl21|ctrl7|ctrlinit|cuserrnd|dam|date|dates|db|dbamp|dbfsamp|dcblock|dcblock2|dconv|delay|delay1|delayk|delayr|delayw|deltap|deltap3|deltapi|deltapn|deltapx|deltapxw|denorm|diff|diskgrain|diskin|diskin2|dispfft|display|distort|distort1|divz|doppler|downsamp|dripwater|dssiactivate|dssiaudio|dssictls|dssiinit|dssilist|dumpk|dumpk2|dumpk3|dumpk4|duserrnd|dust|dust2|else|elseif|endif|envlpx|envlpxr|ephasor|eqfil|evalstr|event|event_i|exciter|exitnow|exp|expcurve|expon|exprand|exprandi|expseg|expsega|expsegb|expsegba|expsegr|fareylen|fareyleni|faustaudio|faustcompile|faustctl|faustgen|fft|fftinv|ficlose|filebit|filelen|filenchnls|filepeak|filesr|filevalid|fillarray|filter2|fin|fini|fink|fiopen|flanger|flashtxt|flooper|flooper2|floor|fluidAllOut|fluidCCi|fluidCCk|fluidControl|fluidEngine|fluidLoad|fluidNote|fluidOut|fluidProgramSelect|fluidSetInterpMethod|fmb3|fmbell|fmmetal|fmpercfl|fmrhode|fmvoice|fmwurlie|fof|fof2|fofilter|fog|fold|follow|follow2|foscil|foscili|fout|fouti|foutir|foutk|fprintks|fprints|frac|fractalnoise|framebuffer|freeverb|ftchnls|ftconv|ftcps|ftfree|ftgen|ftgenonce|ftgentmp|ftlen|ftload|ftloadk|ftlptim|ftmorf|ftresize|ftresizei|ftsave|ftsavek|ftsr|gain|gainslider|gauss|gaussi|gausstrig|gbuzz|genarray|genarray_i|gendy|gendyc|gendyx|getcfg|getcol|getrow|getseed|gogobel|goto|grain|grain2|grain3|granule|guiro|harmon|harmon2|harmon3|harmon4|hdf5read|hdf5write|hilbert|hrtfearly|hrtfer|hrtfmove|hrtfmove2|hrtfreverb|hrtfstat|hsboscil|hvs1|hvs2|hvs3|i|ibetarand|ibexprnd|icauchy|iceps|ictrl14|ictrl21|ictrl7|iexprand|if|igauss|igoto|ihold|ilinrand|imagecreate|imagefree|imagegetpixel|imageload|imagesave|imagesetpixel|imagesize|imidic14|imidic21|imidic7|in|in32|inch|inh|init|initc14|initc21|initc7|inleta|inletf|inletk|inletkid|inletv|ino|inq|inrg|ins|insglobal|insremot|instimek|instimes|int|integ|interp|invalue|inx|inz|ioff|ion|iondur|iondur2|ioutat|ioutc|ioutc14|ioutpat|ioutpb|ioutpc|ipcauchy|ipoisson|ipow|is16b14|is32b14|islider16|islider32|islider64|islider8|itablecopy|itablegpw|itablemix|itablew|itrirand|iunirand|iweibull|jacktransport|jitter|jitter2|jspline|k|kbetarand|kbexprnd|kcauchy|kdump|kdump2|kdump3|kdump4|kexprand|kfilter2|kgauss|kgoto|klinrand|kon|koutat|koutc|koutc14|koutpat|koutpb|koutpc|kpcauchy|kpoisson|kpow|kr|kread|kread2|kread3|kread4|ksmps|ktableseg|ktrirand|kunirand|kweibull|lenarray|lentab|lfo|limit|line|linen|linenr|lineto|linrand|linseg|linsegb|linsegr|locsend|locsig|log|log10|log2|logbtwo|logcurve|loop_ge|loop_gt|loop_le|loop_lt|loopseg|loopsegp|looptseg|loopxseg|lorenz|lorismorph|lorisplay|lorisread|loscil|loscil3|loscilx|lowpass2|lowres|lowresx|lpf18|lpform|lpfreson|lphasor|lpinterp|lposcil|lposcil3|lposcila|lposcilsa|lposcilsa2|lpread|lpreson|lpshold|lpsholdp|lpslot|lua_exec|lua_opcall|lua_opdef|mac|maca|madsr|mags|mandel|mandol|maparray|maparray_i|marimba|massign|max|max_k|maxabs|maxabsaccum|maxaccum|maxalloc|maxarray|maxtab|mclock|mdelay|median|mediank|metro|midglobal|midic14|midic21|midic7|midichannelaftertouch|midichn|midicontrolchange|midictrl|mididefault|midifilestatus|midiin|midinoteoff|midinoteoncps|midinoteonkey|midinoteonoct|midinoteonpch|midion|midion2|midiout|midipgm|midipitchbend|midipolyaftertouch|midiprogramchange|miditempo|midremot|min|minabs|minabsaccum|minaccum|minarray|mincer|mintab|mirror|mode|modmatrix|monitor|moog|moogladder|moogvcf|moogvcf2|moscil|mp3bitrate|mp3in|mp3len|mp3nchnls|mp3sr|mpulse|mrtmsg|multitap|multtab|mute|mxadsr|nchnls|nchnls_i|nestedap|nlalp|nlfilt|nlfilt2|noise|noteoff|noteon|noteondur|noteondur2|notnum|nreverb|nrpn|nsamp|nstance|nstrnum|ntrpol|octave|octcps|octmidi|octmidib|octmidinn|octpch|olabuffer|oscbnk|oscil|oscil1|oscil1i|oscil3|oscili|oscilikt|osciliktp|oscilikts|osciln|oscils|oscilx|out|out32|outc|outch|outh|outiat|outic|outic14|outipat|outipb|outipc|outkat|outkc|outkc14|outkpat|outkpb|outkpc|outleta|outletf|outletk|outletkid|outletv|outo|outq|outq1|outq2|outq3|outq4|outrg|outs|outs1|outs2|outvalue|outx|outz|p|p5gconnect|p5gdata|pan|pan2|pareq|part2txt|partials|partikkel|partikkelget|partikkelset|partikkelsync|passign|pcauchy|pchbend|pchmidi|pchmidib|pchmidinn|pchoct|pconvolve|pcount|pdclip|pdhalf|pdhalfy|peak|peakk|pgmassign|pgmchn|phaser1|phaser2|phasor|phasorbnk|phs|pindex|pinker|pinkish|pitch|pitchac|pitchamdf|planet|platerev|plltrack|pluck|plustab|plyexect|poisson|pol2rect|polyaft|polynomial|pop|pop_f|port|portk|poscil|poscil3|pow|powershape|powoftwo|prealloc|prepiano|print|print_type|printf|printf_i|printk|printk2|printks|printks2|prints|product|pset|ptable|ptable3|ptablei|ptableiw|ptablew|ptrack|push|push_f|puts|pvadd|pvbufread|pvcross|pvinterp|pvoc|pvread|pvs2array|pvs2tab|pvsadsyn|pvsanal|pvsarp|pvsbandp|pvsbandr|pvsbin|pvsblur|pvsbuffer|pvsbufread|pvsbufread2|pvscale|pvscent|pvsceps|pvscross|pvsdemix|pvsdiskin|pvsdisp|pvsenvftw|pvsfilter|pvsfread|pvsfreeze|pvsfromarray|pvsftr|pvsftw|pvsfwrite|pvsgain|pvsgendy|pvshift|pvsifd|pvsin|pvsinfo|pvsinit|pvslock|pvsmaska|pvsmix|pvsmooth|pvsmorph|pvsosc|pvsout|pvspitch|pvstanal|pvstencil|pvsvoc|pvswarp|pvsynth|pwd|pyassign|pyassigni|pyassignt|pycall|pycall1|pycall1i|pycall1t|pycall2|pycall2i|pycall2t|pycall3|pycall3i|pycall3t|pycall4|pycall4i|pycall4t|pycall5|pycall5i|pycall5t|pycall6|pycall6i|pycall6t|pycall7|pycall7i|pycall7t|pycall8|pycall8i|pycall8t|pycalli|pycalln|pycallni|pycallt|pyeval|pyevali|pyevalt|pyexec|pyexeci|pyexect|pyinit|pylassign|pylassigni|pylassignt|pylcall|pylcall1|pylcall1i|pylcall1t|pylcall2|pylcall2i|pylcall2t|pylcall3|pylcall3i|pylcall3t|pylcall4|pylcall4i|pylcall4t|pylcall5|pylcall5i|pylcall5t|pylcall6|pylcall6i|pylcall6t|pylcall7|pylcall7i|pylcall7t|pylcall8|pylcall8i|pylcall8t|pylcalli|pylcalln|pylcallni|pylcallt|pyleval|pylevali|pylevalt|pylexec|pylexeci|pylexect|pylrun|pylruni|pylrunt|pyrun|pyruni|pyrunt|qinf|qnan|r2c|rand|randh|randi|random|randomh|randomi|rbjeq|readclock|readf|readfi|readk|readk2|readk3|readk4|readks|readscore|readscratch|rect2pol|reinit|release|remoteport|remove|repluck|reson|resonk|resonr|resonx|resonxk|resony|resonz|resyn|return|reverb|reverb2|reverbsc|rewindscore|rezzy|rfft|rifft|rigoto|rireturn|rms|rnd|rnd31|round|rspline|rtclock|s16b14|s32b14|samphold|sandpaper|scale|scalearray|scalet|scanhammer|scans|scantable|scanu|schedkwhen|schedkwhennamed|schedule|schedwhen|scoreline|scoreline_i|seed|sekere|semitone|sense|sensekey|seqtime|seqtime2|serialBegin|serialEnd|serialFlush|serialPrint|serialRead|serialWrite|serialWrite_i|setcol|setctrl|setksmps|setrow|setscorepos|sfilist|sfinstr|sfinstr3|sfinstr3m|sfinstrm|sfload|sflooper|sfpassign|sfplay|sfplay3|sfplay3m|sfplaym|sfplist|sfpreset|shaker|shiftin|shiftout|signalflowgraph|signum|sin|sinh|sininv|sinsyn|sleighbells|slicearray|slider16|slider16f|slider16table|slider16tablef|slider32|slider32f|slider32table|slider32tablef|slider64|slider64f|slider64table|slider64tablef|slider8|slider8f|slider8table|slider8tablef|sliderKawai|sndload|sndloop|sndwarp|sndwarpst|sockrecv|sockrecvs|socksend|socksends|soundin|soundout|soundouts|space|spat3d|spat3di|spat3dt|spdist|specaddm|specdiff|specdisp|specfilt|spechist|specptrk|specscal|specsum|spectrum|splitrig|sprintf|sprintfk|spsend|sqrt|sr|stack|statevar|stix|strcat|strcatk|strchar|strchark|strcmp|strcmpk|strcpy|strcpyk|strecv|streson|strfromurl|strget|strindex|strindexk|strlen|strlenk|strlower|strlowerk|strrindex|strrindexk|strset|strsub|strsubk|strtod|strtodk|strtol|strtolk|strupper|strupperk|stsend|subinstr|subinstrinit|sum|sumarray|sumtab|svfilter|syncgrain|syncloop|syncphasor|system|system_i|tab|tab2pvs|tab_i|tabgen|tabifd|table|table3|table3kt|tablecopy|tablefilter|tablefilteri|tablegpw|tablei|tableicopy|tableigpw|tableikt|tableimix|tableiw|tablekt|tablemix|tableng|tablera|tableseg|tableshuffle|tableshufflei|tablew|tablewa|tablewkt|tablexkt|tablexseg|tabmap|tabmap_i|tabmorph|tabmorpha|tabmorphak|tabmorphi|tabplay|tabrec|tabslice|tabsum|tabw|tabw_i|tambourine|tan|tanh|taninv|taninv2|tb|tb0|tb0_init|tb1|tb10|tb10_init|tb11|tb11_init|tb12|tb12_init|tb13|tb13_init|tb14|tb14_init|tb15|tb15_init|tb1_init|tb2|tb2_init|tb3|tb3_init|tb4|tb4_init|tb5|tb5_init|tb6|tb6_init|tb7|tb7_init|tb8|tb8_init|tb9|tb9_init|tbvcf|tempest|tempo|temposcal|tempoval|then|tigoto|timedseq|timeinstk|timeinsts|timek|times|timout|tival|tlineto|tone|tonek|tonex|tradsyn|trandom|transeg|transegb|transegr|trcross|trfilter|trhighest|trigger|trigseq|trirand|trlowest|trmix|trscale|trshift|trsplit|turnoff|turnoff2|turnon|unirand|until|unwrap|upsamp|urandom|urd|vactrol|vadd|vadd_i|vaddv|vaddv_i|vaget|valpass|vaset|vbap|vbap16|vbap16move|vbap4|vbap4move|vbap8|vbap8move|vbapg|vbapgmove|vbaplsinit|vbapmove|vbapz|vbapzmove|vcella|vco|vco2|vco2ft|vco2ift|vco2init|vcomb|vcopy|vcopy_i|vdel_k|vdelay|vdelay3|vdelayk|vdelayx|vdelayxq|vdelayxs|vdelayxw|vdelayxwq|vdelayxws|vdivv|vdivv_i|vecdelay|veloc|vexp|vexp_i|vexpseg|vexpv|vexpv_i|vibes|vibr|vibrato|vincr|vlimit|vlinseg|vlowres|vmap|vmirror|vmult|vmult_i|vmultv|vmultv_i|voice|vosim|vphaseseg|vport|vpow|vpow_i|vpowv|vpowv_i|vpvoc|vrandh|vrandi|vstaudio|vstaudiog|vstbankload|vstedit|vstinfo|vstinit|vstmidiout|vstnote|vstparamget|vstparamset|vstprogset|vsubv|vsubv_i|vtaba|vtabi|vtabk|vtable1k|vtablea|vtablei|vtablek|vtablewa|vtablewi|vtablewk|vtabwa|vtabwi|vtabwk|vwrap|waveset|weibull|wgbow|wgbowedbar|wgbrass|wgclar|wgflute|wgpluck|wgpluck2|wguide1|wguide2|wiiconnect|wiidata|wiirange|wiisend|window|wrap|writescratch|wterrain|xadsr|xin|xout|xscanmap|xscans|xscansmap|xscanu|xtratim|xyin|zacl|zakinit|zamod|zar|zarg|zaw|zawm|zfilter2|zir|ziw|ziwm|zkcl|zkmod|zkr|zkw|zkwm)\b
94 | name
95 | support.function.csd
96 |
97 |
98 | comment
99 | variable names
100 | match
101 | \b(a|k|i|g|S|f)[A-Za-z0-9_]+\b
102 | name
103 | variable.parameter.csd
104 |
105 |
106 | comment
107 | operators
108 | match
109 | (\+|\-|\*|\/|\%|\=)
110 | name
111 | entity.name.tag.csd
112 |
113 |
114 | scopeName
115 | source.csd
116 | uuid
117 | d8778262-63b0-4a49-a7ff-afc2280eb708
118 |
119 |
120 |
--------------------------------------------------------------------------------
/Csound/ReadMe.txt:
--------------------------------------------------------------------------------
1 | v0.03 (Jan 07, 2013)
2 | Takahiko Tsuchiya
3 |
4 | This is a quick-made package for .csd in Sublime Text 2, with syntax highlighting, auto completion, opcode hint, and build system. It's only tested on Mac OSX. I'll prepare a public version on GitHub some time later, but feel free to modify these and repost.
5 |
6 | To use, copy the folder /Csound into ST2's /Packages folder (on Mac, menu item Sublime Text 2 -> Preferences -> Browse Packages), and move the contents of another folder into /Packages/User folder.
7 |
8 |
9 | // plugins
10 | popup_hint.py:
11 | Shows the hint for the opcode at current cursor position in dialog window. Run it from context menu or set a shortcut key with "popup_hint" command.
12 |
13 | statusbar_hint.py:
14 | Shows the hint in the status bar. Copy the .sublime-mousemap file to User folder, so the hint is shown automatically at mouse click.
15 |
16 | search_in_manual.py:
17 | Shows the opcode entry in online manual in browser. Open in brwoser is kind of buggy in ST2 in general.
18 |
19 | open_in_csound_qt.py:
20 | Opens the current .csd file in CsoundQT (v0.7 Mac)
21 |
22 |
23 | // build system (Mac)
24 | Be careful not to run it twice. If the csd is set to run infinitely, it might not be able to stop.
25 |
--------------------------------------------------------------------------------
/Csound/open_in_csound_qt.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sublime, sublime_plugin
3 |
4 | class OpenInCsoundQtCommand(sublime_plugin.TextCommand):
5 |
6 | def run(self, edit):
7 |
8 | view = sublime.Window.active_view(sublime.active_window())
9 | file = view.file_name()
10 | os.system("/Applications/CsoundQt-d-py-0.7.0.app/Contents/MacOS/CsoundQt-d-py " + file)
11 |
12 | def is_visible(self):
13 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
14 |
15 | def is_enabled(self):
16 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
--------------------------------------------------------------------------------
/Csound/popup_hint.py:
--------------------------------------------------------------------------------
1 | import sublime, sublime_plugin
2 | import xml.etree.ElementTree as et
3 |
4 | tree = et.parse('opcodes.xml')
5 | root = tree.getroot()
6 |
7 | def search(term):
8 | for catIndx, catEt in enumerate(root):
9 | for opcIndx, opcEt in enumerate(root[catIndx]):
10 | if len(opcEt) > 1:
11 | if opcEt[1][0].text == term:
12 | return catIndx, opcIndx
13 |
14 | def showHint(cat, opc):
15 | front = root[cat][opc][1].text
16 | if front == None:
17 | front = ""
18 | opcode = root[cat][opc][1][0].text
19 | tail = root[cat][opc][1][0].tail
20 | if tail == None:
21 | tail = ""
22 | desc = root[cat][opc][0].text
23 | opcodeName = "{0:^50}".format(opcode)
24 | return "%s\n\n%s<%s>%s\n\n%s" % (opcodeName, front, opcode, tail, desc)
25 |
26 | class PopupHintCommand(sublime_plugin.TextCommand):
27 | def run(self, edit):
28 | word = self.view.substr(self.view.word((self.view.sel()[0].b)))
29 | cat = search(word)[0]
30 | opc = search(word)[1]
31 | sublime.message_dialog(showHint(cat, opc))
32 |
33 | def is_visible(self):
34 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
35 |
36 | def is_enabled(self):
37 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
38 |
--------------------------------------------------------------------------------
/Csound/search_in_manual.py:
--------------------------------------------------------------------------------
1 | import webbrowser
2 | import sublime, sublime_plugin
3 |
4 | class SearchInManualCommand(sublime_plugin.TextCommand):
5 |
6 | def run(self, edit):
7 | word = self.view.substr(self.view.word((self.view.sel()[0].b)))
8 | webbrowser.open_new_tab("http://www.csounds.com/manual/html/%s" % word)
9 |
10 | def is_visible(self):
11 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
12 |
13 | def is_enabled(self):
14 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
15 |
--------------------------------------------------------------------------------
/Csound/statusbar_hint.py:
--------------------------------------------------------------------------------
1 | import sublime, sublime_plugin
2 | import xml.etree.ElementTree as et
3 |
4 | tree = et.parse('opcodes.xml')
5 | root = tree.getroot()
6 |
7 | def search(term):
8 | for catIndx, catEt in enumerate(root):
9 | for opcIndx, opcEt in enumerate(root[catIndx]):
10 | if len(opcEt) > 1:
11 | if opcEt[1][0].text == term:
12 | return catIndx, opcIndx
13 |
14 | def showHint(cat, opc):
15 | front = root[cat][opc][1].text
16 | if front == None:
17 | front = ""
18 | opcode = root[cat][opc][1][0].text
19 | tail = root[cat][opc][1][0].tail
20 | if tail == None:
21 | tail = ""
22 | desc = root[cat][opc][0].text
23 | return "%s<%s>%s [%s]" % (front, opcode, tail, desc)
24 |
25 | class StatusbarHintCommand(sublime_plugin.TextCommand):
26 | def run(self, edit):
27 | word = self.view.substr(self.view.word((self.view.sel()[0].b)))
28 | cat = search(word)[0]
29 | opc = search(word)[1]
30 | display = "{0:^200}".format(showHint(cat, opc))
31 | sublime.status_message(display)
32 |
33 | def is_visible(self):
34 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
35 |
36 | def is_enabled(self):
37 | return self.view.file_name() and self.view.file_name()[-4:] == ".csd"
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/Main.sublime-menu:
--------------------------------------------------------------------------------
1 | [{
2 | "caption": "Preferences",
3 | "mnemonic": "n",
4 | "id": "preferences",
5 | "children": [ {
6 | "caption": "Package Settings",
7 | "mnemonic": "P",
8 | "id": "package-settings",
9 | "children": [ {
10 | "caption": "Intellitip",
11 | "children":[
12 | {
13 | "command": "open_file",
14 | "args": {"file": "${packages}/Intellitip/intellitip.sublime-settings"},
15 | "caption": "Settings – Default"
16 | },
17 | {
18 | "command": "open_file",
19 | "args": {"file": "${packages}/User/intellitip.sublime-settings"},
20 | "caption": "Settings – User"
21 | },
22 | ]
23 | } ]
24 | } ]
25 | }]
26 |
--------------------------------------------------------------------------------
/README 2.md:
--------------------------------------------------------------------------------
1 | # Intellitip
2 |
3 | Lovingly forked from [Sublime-Intellidocs](https://github.com/shortcutme/Sublime-IntelliDocs).
4 |
5 | **IMPORTANT: ONLY COMPATIBLE WITH SUBLIME TEXT 3 DEV 3070!**
6 |
7 | Supported languages:
8 |
9 | - PHP
10 | - JavaScript
11 | - Python
12 |
13 | ## Usage
14 |
15 | Move your cursor over a function name and you'll see a tooltip.
16 |
17 | 
18 |
19 | # License
20 |
21 | [MIT](/LICENSE)
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Csound syntax highlighter, build system and opcode popup support for Sublime Text 3/
2 |
3 | 
4 |
5 | This is an amalgamation and modification of two Sublime projects. The first is a Csound syntax highlighter and build system posted to the Csound list by Takahiko Tsuchiya. The second project is IntelliDocs:
6 | https://github.com/shortcutme/Sublime-IntelliDocs)
7 | and later a forked version of that repo at:
8 | https://github.com/jbrooksuk/Intellitip
9 |
10 | ## Installation ##
11 |
12 | Download the zip and unpack it to the Sublime packages folder:
13 | - Windows: %APPDATA%\Sublime Text 3\Packages
14 | - OSX: ~/Library/Application Support/Sublime Text 3/Pacakges
15 | - Linux: ~/.Sublime Text 3/Packages
16 |
17 | ## Usage ##
18 |
19 | - Select the Csound build system if it is not auto-selected. Press Ctrl(cmd)+b to run Csound, and press Ctrl+alt+c to stop Csound.
20 |
21 |
22 | ## Thanks to ##
23 | Takahiko Tsuchiya for creating the Csound syntax highlighter, and https://github.com/shortcutme for creating the wonderful IntelliDocs system for Sublime Editor.
24 |
--------------------------------------------------------------------------------
/createCsoundDb.py:
--------------------------------------------------------------------------------
1 | inputFile = open("opcodes.txt")
2 | outputFile = open("db/csound.json", 'w')
3 | outputFile.write("{\n")
4 |
5 | for line in inputFile:
6 | tokens = line.split(";")
7 | #entry name
8 | entry = "\t"+tokens[0] + ": {\n"
9 | #descr
10 | entry = entry+"\t\t\"descr\": \""+tokens[2][1:-1].translate(None, "\"")+"\",\n"
11 | #name
12 | entry = entry+"\t\t\"name\": "+tokens[0]+",\n"
13 | #params
14 | entry = entry+"\t\t\"params\": [],\n"
15 | #path
16 | entry = entry+"\t\t\"path\": \"csound/"+tokens[0][1:-1]+".html\",\n"
17 | #syntax
18 | entry = entry+"\t\t\"syntax\": \""+tokens[3][1:-1].translate(None, "\"")+"\",\n"
19 | #type
20 | entry = entry+"\t\t\"type\": "+tokens[1]+"\n"
21 | entry = entry+"\t},\n"
22 | outputFile.write(entry)
23 |
24 |
25 | outputFile.write("}")
26 | outputFile.close()
27 | #now sort out trailing ,
28 | inputFile = open("db/csound.json")
29 | dbFile = inputFile.readlines()
30 | numberOfLines = len(dbFile)
31 |
32 | dbFile[numberOfLines-2] = "\t}\n"
33 |
34 | outputFile = open("db/csound.json", 'w')
35 |
36 | for lines in dbFile:
37 | outputFile.write("%s" % lines)
38 |
39 | outputFile.close()
40 | inputFile.close()
41 |
42 |
--------------------------------------------------------------------------------
/css/dark.css:
--------------------------------------------------------------------------------
1 | html {
2 | background-color: #232628;
3 | color: #CCCCCC;
4 | }
5 |
6 | body {
7 | font-size: 12px;
8 | }
9 |
10 | a {
11 | color: #6699cc;
12 | }
13 |
14 | b {
15 | color: #cc99cc;
16 | }
17 |
18 | h1 {
19 | color: #99cc99;
20 | font-size: 14px;
21 | }
22 |
--------------------------------------------------------------------------------
/css/default.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-size: 12px;
3 | }
4 |
5 | h1 {
6 | font-size: 14px;
7 | }
8 |
--------------------------------------------------------------------------------
/css/light.css:
--------------------------------------------------------------------------------
1 | html {
2 | background-color: #FAFDFF;
3 | color: #4d4d4c;
4 | }
5 |
6 | body {
7 | font-size: 12px;
8 | }
9 |
10 | a {
11 | color: #3e999f;
12 | }
13 |
14 | b {
15 | color: #8959a8;
16 | }
17 |
18 | h1 {
19 | color: #718c00;
20 | font-size: 14px;
21 | }
22 |
--------------------------------------------------------------------------------
/db/updatedb.py:
--------------------------------------------------------------------------------
1 | import os, re, json
2 |
3 | # Update DB from local devdocs.io dump: https://github.com/Thibaut/devdocs
4 | # (Tested on Python 2.7 win7)
5 |
6 | path_devdocs = "/Users/james.brooks/Downloads/devdocs-master"
7 | path_db = "."
8 | docs = {
9 | "php": "PHP",
10 | # "python": "Python",
11 | "javascript": "Javascript",
12 | "dom": "Javascript",
13 | "jquery": "Javascript"
14 | }
15 |
16 | patterns = {
17 | "PHP": {
18 | # "skip" : '.*::',
19 | "syntax": ".*?methodsynopsis.*?>(.*?)",
20 | "descr" : ".*rdfs-comment.*?>(.*?)
",
21 | "params": "(.*?)(.*?)"
22 | },
23 | "Python": {
24 | "doc" : '.*(.*?)',
25 | "alias" : '^(str|dict|int|float|list|bytes|bytearray|array.array|array|re.match)\.',
26 | "syntax": "(.*?)",
27 | "descr" : ".*?(.*?)
",
28 | },
29 | "Javascript": {
30 | "alias" : '^(Array|String|Date|Function|Object|RegExp|Number|window)\.',
31 | "syntax": ".*?(?:[sS]yntax|section).*?<(?:code|pre|span).*?>(.*?\).*?)(?:p|pre|code|h2)>",
32 | "descr" : ".*?h1.*?(.*?)
",
33 | "params": "(?:(.*?)(.*?)|.{5,30}(.*?)(.*?))"
34 | }
35 | }
36 |
37 | def stripTags(s):
38 | s = re.sub("<[a-zA-Z/]+.*?>", "", s)
39 | s = s.replace("&", "&")
40 | s = s.replace(">", ">")
41 | s = s.replace("<", "<")
42 | s = s.replace("\n", "")
43 | s = s.strip()
44 | return s
45 |
46 | class Parser:
47 | def __init__(self, directory, name):
48 | self.name = name
49 | self.directory = directory
50 | self.patterns = patterns[name]
51 | path = path_devdocs+"/public/docs/"+directory+"/"
52 | self.updateDoc(path)
53 |
54 |
55 | def getPattern(self, pattern_name):
56 | self.patterns[pattern_name].format(name = entry["name"])
57 |
58 |
59 | def getDescr(self, doc):
60 | match_descr = re.match(self.patterns["descr"], doc, re.DOTALL)
61 | if match_descr:
62 | descr = match_descr.group(1)
63 | else:
64 | descr = ""
65 | return stripTags(descr)
66 |
67 |
68 | def getParams(self, doc):
69 | params = []
70 | if "params" not in self.patterns: return params
71 | for match in re.findall(self.patterns["params"], doc, re.DOTALL):
72 | name, descr = [group for group in match if group]
73 | descr = re.sub("^(.{30,200}?)(\. |$).*", "\\1\\2", stripTags(descr))
74 | params.append({"name": stripTags(name), "descr": descr})
75 | return params
76 |
77 |
78 | def updateDoc(self, path):
79 | index = json.load(open(path+"/index.json"))
80 | db = json.load(open(path_db+"/"+self.name+".json"))
81 | no_match = []
82 | for entry in index["entries"]:
83 | # Open doc file
84 | entry["name"] = entry["name"].replace(" (class)", "").strip("().")
85 | if "skip" in self.patterns and re.match(self.patterns["skip"], entry["name"]):
86 | print("S", end="")
87 | continue
88 |
89 | path_doc = path+re.sub("#.*$", "", entry["path"])+".html"
90 | try:
91 | doc = open(path_doc).read()
92 | except Exception, err:
93 | print(err)
94 |
95 | #if entry["name"] != "removeClass": continue # DEBUG
96 |
97 | if "doc" in self.patterns: # Prefilter doc
98 | match = re.match(self.patterns["doc"] % entry, doc, re.DOTALL)
99 | if match:
100 | doc = match.group(1)
101 | else:
102 | doc = ""
103 |
104 | # Match sytax
105 | match = re.match(self.patterns["syntax"], doc, re.DOTALL)
106 |
107 | # Add to db
108 | if match:
109 | syntax = stripTags(match.group(1))
110 | syntax = syntax.replace(")Returns:", ") Returns:") # jQuery doc returns fix
111 |
112 | #multiple syntax possible
113 | if ");" in syntax:
114 | parts = syntax.split(");")
115 | syntax = ");\n or ".join( [part for part in parts if part.strip()] )+");"
116 |
117 | db[entry["name"]] = {
118 | "name" : entry["name"],
119 | "path" : self.directory+"/"+entry["path"],
120 | "type" : entry["type"],
121 | "syntax": syntax,
122 | "descr" : self.getDescr(doc),
123 | "params": self.getParams(doc)
124 | }
125 | print(".", end="")
126 |
127 | # Create alias like str.replace -> replace
128 | if "alias" in self.patterns:
129 | name_alias = re.sub(self.patterns["alias"], "", entry["name"])
130 | if name_alias != entry["name"]:
131 | db[name_alias] = db[entry["name"]]
132 | print("A", end="")
133 |
134 | # jQuery.* -> $.* alias
135 | if entry["name"].startswith("jQuery"):
136 | name_alias = entry["name"].replace("jQuery.", "$.")
137 | db[name_alias] = db[entry["name"]]
138 |
139 | else:
140 | print("-", end="")
141 | no_match.append(entry["name"])
142 | open(path_db+"/"+self.name+".json", "w").write(json.dumps(db, sort_keys=True, indent=4))
143 | print("No match:", no_match)
144 | print("Done!")
145 |
146 | # Create empty files
147 | for directory, name in docs.items():
148 | open(path_db+"/"+name+".json", "w").write("{}")
149 |
150 |
151 | # Fill db
152 | for directory, name in docs.items():
153 | print(" * Updating", directory, "->", name)
154 | Parser(directory, name)
155 |
--------------------------------------------------------------------------------
/intellitip.py:
--------------------------------------------------------------------------------
1 | import sublime_plugin, sublime, json, webbrowser
2 | import re, os
3 | from time import time
4 |
5 | settings = {}
6 |
7 | class IntellitipCommand(sublime_plugin.EventListener):
8 |
9 | cache = {}
10 | region_row = []
11 | lang = None
12 |
13 | def on_activated(self, view):
14 | Pref.time = time()
15 | sublime.set_timeout(lambda:self.run(view, 'activated'), 0)
16 |
17 | def on_modified(self, view):
18 | Pref.time = time()
19 |
20 | def on_selection_modified(self, view):
21 | now = time()
22 | sublime.set_timeout(lambda:self.run(view, 'selection_modified'), 0)
23 | Pref.time = now
24 |
25 | def run(self, view, where):
26 | global region_row, lang
27 |
28 | view_settings = view.settings()
29 | if view_settings.get('is_widget'):
30 | return
31 |
32 | for region in view.sel():
33 | region_row, region_col = view.rowcol(region.begin())
34 |
35 | if region_row != view_settings.get('intellitip_row', -1):
36 | view_settings.set('intellip_row', region_row)
37 | else:
38 | return
39 |
40 | # Find db for lang
41 | lang = self.getLang(view)
42 | if lang not in self.cache: #DEBUG disable cache: or 1 == 1
43 | path_db = os.path.dirname(os.path.abspath(__file__))+"/db/%s.json" % lang
44 | self.debug("Loaded intelliDocs db:", path_db)
45 |
46 | if os.path.exists(path_db):
47 | self.cache[lang] = json.load(open(path_db))
48 | else:
49 | self.cache[lang] = {}
50 |
51 | completions = self.cache[lang]
52 |
53 | # Find in completions
54 | if completions:
55 | function_names = self.getFunctionNames(view, completions)
56 | found = False
57 | for function_name in function_names:
58 | completion = completions.get(function_name)
59 | if completion:
60 | found = completion
61 | break
62 |
63 | if found:
64 | menus = ['' % Pref.css]
65 | # Syntax
66 | menus.append("%s
" % found["syntax"])
67 |
68 | for descr in re.sub("(.{100,120}[\.]) ", "\\1||", found["descr"]).split("||"): #Spit long description lines
69 | menus.append("
"+descr+"
")
70 |
71 | #Parameters
72 | if found["params"]:
73 | menus.append("Parameters:
")
74 |
75 | for parameter in found["params"]:
76 | menus.append("- "+parameter["name"]+": "+parameter["descr"]+"
")
77 |
78 | self.appendLinks(menus, found)
79 |
80 | view.show_popup(''.join(menus), location=-1, max_width=600, on_navigate=self.on_navigate)
81 | else:
82 | view.hide_popup()
83 |
84 | def appendLinks(self, menus, found):
85 | for pattern, link in sorted(Pref.help_links.items()):
86 | if re.match(pattern, found["path"]):
87 | host = re.match(".*?//(.*?)/", link).group(1)
88 | menus.append('
Open docs: Docs' % found["name"])
89 | break
90 | return menus
91 |
92 | def getLang(self, view):
93 | scope = view.scope_name(view.sel()[0].b) #try to match against the current scope
94 | for match, lang in Pref.docs.items():
95 | if re.match(".*"+match, scope): return lang
96 | self.debug(scope)
97 | return re.match(".*/(.*?).tmLanguage", view.settings().get("syntax")).group(1) #no match in predefined docs, return from syntax filename
98 |
99 | def getFunctionNames(self, view, completions):
100 | global region_row
101 | return [view.substr(view.word(view.sel()[0]))]
102 |
103 | def on_navigate(self, link):
104 | global lang
105 | webbrowser.open_new_tab(Pref.help_links[lang.lower()] % link)
106 |
107 | def debug(self, *text):
108 | if Pref.debug:
109 | print(*text)
110 |
111 | def init_css():
112 | css_file = 'Packages/' + Pref.css_file
113 |
114 | try:
115 | Pref.css = sublime.load_resource(css_file).replace('\r', '')
116 | except:
117 | Pref.css = None
118 |
119 | settings.clear_on_change('reload')
120 | settings.add_on_change('reload', 'init_css')
121 |
122 | def plugin_loaded():
123 | global Pref, settings
124 |
125 | class Pref:
126 | def load(self):
127 | Pref.wait_time = 0.12
128 | Pref.time = time()
129 | Pref.css_file = settings.get('css_file', "Intellitip/css/default.css")
130 | Pref.help_links = settings.get('help_links', [])
131 | Pref.docs = settings.get('docs', None)
132 | Pref.debug = settings.get('debug', False)
133 | Pref.css = None
134 |
135 | settings = sublime.load_settings("intellitip.sublime-settings")
136 | Pref = Pref()
137 | Pref.load()
138 | init_css()
139 |
140 | settings.add_on_change('reload', lambda:Pref.load())
141 |
--------------------------------------------------------------------------------
/intellitip.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "help_links": {
3 | ".*": "http://devdocs.io/%s",
4 | "php": "http://php.net/manual-lookup.php?pattern=%s",
5 | "python": "http://docs.python.org/3/search.html?q=%s",
6 | "jquery": "http://api.jquery.com/%s",
7 | "csound": "http://csound.github.io/docs/manual/%s",
8 | "javascript|dom": "https://developer.mozilla.org/en-US/search?topic=js&topic=html&topic=api&q=%s",
9 | },
10 | "docs": {
11 | "source.php" : "PHP",
12 | "source.js" : "Javascript",
13 | "source.coffee" : "Javascript",
14 | "source.python" : "Python",
15 | "source.csound" : "Csound"
16 | },
17 | "css_file": "Intellitip/css/default.css"
18 | }
19 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rorywalsh/csoundSublime/41c2a6304bad4d93432ea7c185744e8aae211593/screenshot.png
--------------------------------------------------------------------------------