Changeset 230
- Timestamp:
- 02/01/07 23:20:23 (2 years ago)
- Files:
-
- trunk/src/leds/BrowserView.d (modified) (1 diff)
- trunk/src/leds/BuildConsole.d (modified) (1 diff)
- trunk/src/leds/CodeEdit.d (modified) (1 diff)
- trunk/src/leds/CodeView.d (modified) (8 diffs)
- trunk/src/leds/CompilerBox.d (modified) (1 diff)
- trunk/src/leds/CreateProjectElement.d (modified) (1 diff)
- trunk/src/leds/DSpell.d (modified) (1 diff)
- trunk/src/leds/Docker.d (modified) (1 diff)
- trunk/src/leds/DockerFiles.d (modified) (2 diffs)
- trunk/src/leds/DockerTools.d (modified) (1 diff)
- trunk/src/leds/EventImage.d (modified) (1 diff)
- trunk/src/leds/FSTree.d (modified) (1 diff)
- trunk/src/leds/FSView.d (modified) (1 diff)
- trunk/src/leds/FindAndReplace.d (modified) (1 diff)
- trunk/src/leds/GotoLineDialog.d (modified) (1 diff)
- trunk/src/leds/HelpBar.d (modified) (1 diff)
- trunk/src/leds/ImageView.d (modified) (1 diff)
- trunk/src/leds/InputStringDialog.d (modified) (2 diffs)
- trunk/src/leds/Language.d (modified) (1 diff)
- trunk/src/leds/LanguageD.d (modified) (7 diffs)
- trunk/src/leds/LanguageJava.d (modified) (1 diff)
- trunk/src/leds/LanguagePHP.d (modified) (2 diffs)
- trunk/src/leds/Leds.d (modified) (4 diffs)
- trunk/src/leds/ListWindow.d (modified) (1 diff)
- trunk/src/leds/Project.d (modified) (2 diffs)
- trunk/src/leds/ProjectTarget.d (modified) (1 diff)
- trunk/src/leds/ProjectTargetUI.d (modified) (1 diff)
- trunk/src/leds/ProjectView.d (modified) (2 diffs)
- trunk/src/leds/Scintilla.d (modified) (8 diffs)
- trunk/src/leds/SimpleCodeEdit.d (modified) (3 diffs)
- trunk/src/leds/StatusBar.d (modified) (1 diff)
- trunk/src/leds/SystemConsole.d (modified) (1 diff)
- trunk/src/leds/TipWindow.d (modified) (1 diff)
- trunk/src/leds/TrashUI.d (modified) (1 diff)
- trunk/src/leds/Workspace.d (modified) (3 diffs)
- trunk/src/leds/WrapGtk.d (modified) (1 diff)
- trunk/src/property/PropertiesUI.d (modified) (1 diff)
- trunk/src/property/PropsUI.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/leds/BrowserView.d
r187 r230 66 66 private import gtk.Alignment; 67 67 68 private import gtk .gtktypes;68 private import gtkc.gtktypes; 69 69 private import gdk.Event; 70 private import g dk.gdktypes;71 private import g object.gobjecttypes;70 private import gtkc.gdktypes; 71 private import gtkc.gobjecttypes; 72 72 73 73 private import glib.Str; trunk/src/leds/BuildConsole.d
r209 r230 35 35 private import gtk.MenuItem; 36 36 private import gtk.PopupBox; 37 private import gtk .gtktypes;37 private import gtkc.gtktypes; 38 38 39 39 private import gdk.Color; trunk/src/leds/CodeEdit.d
r181 r230 348 348 int getFoldParent(int line); 349 349 int getFoldExpanded(int line); 350 void toggleFold(int line); 350 351 int markerNext(int line, int unknown); 351 352 int markerPrevious(int line, int unknown); trunk/src/leds/CodeView.d
r215 r230 96 96 97 97 98 private import gtk .gtktypes;99 private import g dk.gdktypes;98 private import gtkc.gtktypes; 99 private import gtkc.gdktypes; 100 100 //debug=notify 101 101 … … 308 308 bv.parseCurrentView(this); 309 309 //bv.parse(text, getLanguage()); 310 if ( Leds.leds.getPropValue("codeFolding", false) ) 311 { 312 codeEdit.showCodeFolding(true); 313 this.addFolds(); 314 } 310 311 this.addFolds(); 312 315 313 316 314 } … … 1331 1329 if ( lineNumber > 0 ) 1332 1330 { 1333 if (!codeEdit.getLineVisible(lineNumber)) { 1334 this.expandFrom(lineNumber); 1335 } 1336 codeEdit.gotoLine(lineNumber); 1331 exposeLine(lineNumber); 1332 1337 1333 int currLine = codeEdit.getCurrLine(); 1338 1334 int linesOnScreen = codeEdit.linesOnScreen(); … … 2638 2634 if ( autoIndent ) doAutoIndent(codeEdit.getCurrLine()); 2639 2635 if ( autoDocComments ) doAutoDocComments(); 2636 2640 2637 break; 2641 2638 … … 2688 2685 break; 2689 2686 } 2687 this.addFolds(); 2690 2688 return false; 2691 2689 } … … 2739 2737 bool marginClickFolding(int position) 2740 2738 { 2741 //printf("CodeView.codeEditCallback SCN_MARGINCLICK\n" ); 2742 2739 2743 2740 int lineNumber = codeEdit.lineFromPosition(position); 2744 2745 if (codeEdit.markerGet(lineNumber)) { 2746 int curStatus = codeEdit.getFoldExpanded(lineNumber); 2747 if (curStatus == 1) { // open 2748 collapseFrom(lineNumber); 2749 return false; 2750 } 2751 this.expandFrom(lineNumber); 2752 2753 2754 return false; 2755 2756 } 2741 2742 codeEdit.toggleFold(lineNumber); 2757 2743 return false; 2744 2758 2745 } 2759 2746 … … 2876 2863 void addFolds() 2877 2864 { 2878 // at present we dont refold to often.. 2879 // this needs some better logic - only on open / reload etc. 2880 if (this.hasFolds) { 2865 if ( !Leds.leds.getPropValue("codeFolding", false) ) { 2881 2866 return; 2882 2867 } 2883 2884 this.getLanguageHandler().addFolds(); 2885 this.collapseAll(); 2868 2869 2870 2871 // set up code folding 2872 codeEdit.showCodeFolding(true); 2873 2874 // if we already have added folder, just refresh the fold markers. 2875 // otherwise, we collapse everything. 2876 this.getLanguageHandler().addFolds(!this.hasFolds); 2877 2878 //this.collapseAll(); 2886 2879 this.hasFolds = true; 2887 2880 2888 2881 } 2889 2890 int collapseFrom(int lineNumber)2891 {2892 // what this should do:2893 // collapse a function from start to end.2894 // leaving a trace of if the subfolds are expanded or not.2895 2896 // first job - find the end of this fold.2897 // which should be determined by the last line that matches this fold level.2898 2899 2900 int thisLevel = codeEdit.getFoldLevel(lineNumber);2901 int lastChildLine = this.codeEdit.getLineCount();2902 for (int i=lineNumber+1; i<this.codeEdit.getLineCount(); i++) {2903 // writefln("Check line: ", i, " - lvl - ", codeEdit.getFoldLevel(i));2904 if (codeEdit.getFoldLevel(i) < thisLevel) {2905 lastChildLine = i;2906 break;2907 }2908 }2909 //writefln("collapseFrom: to ", lastChildLine);2910 int nxtMarkerLine = codeEdit.markerNext(lineNumber+1,255);2911 //writefln("Next Marker Line from %d is %d", lineNumber, nxtMarkerLine);2912 if ((nxtMarkerLine == lineNumber+1) &&2913 codeEdit.getFoldLevel(lineNumber) == codeEdit.getFoldLevel(nxtMarkerLine)) {2914 //writefln("altering lastChildline");2915 lastChildLine = lineNumber;2916 }2917 2918 2919 2920 codeEdit.setFoldExpanded(lineNumber,0);2921 // remove markers,and set the market to collapse (2)2922 codeEdit.markerDelete(lineNumber,2);2923 codeEdit.markerDelete(lineNumber,3);2924 codeEdit.markAdd(lineNumber,2);2925 codeEdit.hideLines(lineNumber+1,lastChildLine);2926 //writefln("hiding lines ", (lineNumber + 1), " to " , lastChildLine);2927 return lastChildLine;2928 }2929 2930 void collapseAll()2931 {2932 // collapse all has to find the start and end marker..2933 2882 2934 int start = codeEdit.markerNext(0,255);2935 collapseFrom(start);2936 int end = this.codeEdit.getLineCount();2937 for (int i = start+1; i < end; i++ ) {2938 i = codeEdit.markerNext(i,255);2939 //writefln("got markernext %d", i);2940 if (i < 0) {2941 break;2942 }2943 codeEdit.setFoldExpanded(i,0);2944 // remove markers,and set the market to collapse (2)2945 codeEdit.markerDelete(i,2);2946 codeEdit.markerDelete(i,3);2947 codeEdit.markAdd(i,2);2948 collapseFrom(i);2949 2950 }2951 // open up base level ones..2952 2953 for (int i = 0; i < end; i++ ) {2954 i = codeEdit.markerNext(i,255);2955 if (i < 0) {2956 break;2957 }2958 if (codeEdit.getFoldLevel(i) < 2) {2959 expandFrom(i);2960 }2961 }2962 }2963 2964 2883 2965 2884 void exposeLine(int lineNumber) … … 2969 2888 return; 2970 2889 } 2971 int fp = codeEdit.markerPrevious(lineNumber,255); 2972 //writefln("Exposing line ", fp); 2973 expandFrom(fp); 2890 codeEdit.toggleFold(lineNumber); 2974 2891 codeEdit.gotoLine(lineNumber); 2975 2892 } 2976 2893 2977 void expandFrom(int lineNumber) 2978 { 2979 2980 2981 int thisLevel = codeEdit.getFoldLevel(lineNumber); 2982 //writefln("expandFrom:", lineNumber, " foldLevel(",thisLevel,")"); 2983 2984 int lastChildLine = this.codeEdit.getLineCount(); 2985 for (int i=lineNumber+1; i<this.codeEdit.getLineCount(); i++) { 2986 //writefln("Check line: ", i, " - lvl - ", codeEdit.getFoldLevel(i)); 2987 if (codeEdit.getFoldLevel(i) < thisLevel) { 2988 lastChildLine = i; 2989 break; 2990 } 2991 2992 } 2993 2994 2995 2996 2997 //writefln("Hit marker Closed"); 2998 codeEdit.setFoldExpanded(lineNumber,1); 2999 3000 codeEdit.markerDelete(lineNumber,2); 3001 codeEdit.markerDelete(lineNumber,3); 3002 codeEdit.markAdd(lineNumber,3); 3003 codeEdit.showLines(lineNumber,lastChildLine); 3004 3005 // writefln("showLines: ", lineNumber, " to ", lastChildLine); 3006 for (int i=lineNumber+1; i < lastChildLine; i++) { 3007 if (!codeEdit.getFoldExpanded(i)) { 3008 collapseFrom(i); 3009 } 3010 } 3011 } 2894 3012 2895 3013 2896 trunk/src/leds/CompilerBox.d
r209 r230 59 59 private import gtk.ToggleButton; 60 60 private import gtk.CellRendererText; 61 private import gtk .gtktypes;61 private import gtkc.gtktypes; 62 62 63 63 private import gdk.Event; trunk/src/leds/CreateProjectElement.d
r218 r230 42 42 private import gtk.SizeGroup; 43 43 44 private import gtk .gtktypes;44 private import gtkc.gtktypes; 45 45 46 46 class CreateProjectElement : Window trunk/src/leds/DSpell.d
r187 r230 42 42 private import gdk.Event; 43 43 44 private import gtk .gtktypes;44 private import gtkc.gtktypes; 45 45 46 46 public trunk/src/leds/Docker.d
r217 r230 39 39 private import gtk.Alignment; 40 40 41 private import gtk .gtktypes;42 private import g dk.gdktypes;41 private import gtkc.gtktypes; 42 private import gtkc.gdktypes; 43 43 44 44 trunk/src/leds/DockerFiles.d
r187 r230 39 39 40 40 private import gtk.Widget; 41 private import gtk .gtktypes;41 private import gtkc.gtktypes; 42 42 43 43 private import std.stdio; … … 138 138 void dock(Dockable dockable) 139 139 { 140 if (!dockable) {return; } 140 141 super.dock(dockable, false); 141 142 } trunk/src/leds/DockerTools.d
r187 r230 36 36 private import gdk.Pixbuf; 37 37 38 private import gtk .gtktypes;38 private import gtkc.gtktypes; 39 39 40 40 private import std.stdio; trunk/src/leds/EventImage.d
r187 r230 23 23 private import std.stdio; 24 24 25 private import g dk.gdktypes;26 private import gtk .gtktypes;25 private import gtkc.gdktypes; 26 private import gtkc.gtktypes; 27 27 private import gdk.Pixbuf; 28 28 private import gdk.Cursor; trunk/src/leds/FSTree.d
r187 r230 14 14 private import gtk.CellRendererText; 15 15 16 private import g object.gobjecttypes;16 private import gtkc.gobjecttypes; 17 17 18 18 private import glib.FileUtils; trunk/src/leds/FSView.d
r187 r230 56 56 private import gdk.Color; 57 57 58 private import g object.gobjecttypes;59 private import gtk .gtktypes;58 private import gtkc.gobjecttypes; 59 private import gtkc.gtktypes; 60 60 61 61 private import std.stdio; trunk/src/leds/FindAndReplace.d
r187 r230 46 46 private import gtk.Alignment; 47 47 48 private import gtk .gtktypes;48 private import gtkc.gtktypes; 49 49 50 50 private import gdk.Event; trunk/src/leds/GotoLineDialog.d
r187 r230 34 34 private import gtk.Table; 35 35 36 private import gtk .gtktypes;36 private import gtkc.gtktypes; 37 37 38 38 private import glib.Str; trunk/src/leds/HelpBar.d
r187 r230 35 35 private import gtk.TextView; 36 36 37 private import gtk .gtktypes;37 private import gtkc.gtktypes; 38 38 /** 39 39 * A statusbar for leds trunk/src/leds/ImageView.d
r187 r230 30 30 private import gtk.Widget; 31 31 32 private import gtk .gtktypes;32 private import gtkc.gtktypes; 33 33 34 34 /** trunk/src/leds/InputStringDialog.d
r187 r230 30 30 private import gtk.Label; 31 31 private import gtk.Table; 32 private import gtk. Duit;32 private import gtk.GtkD; 33 33 34 private import gtk .gtktypes;34 private import gtkc.gtktypes; 35 35 36 36 private import std.stdio; … … 174 174 this.closed = false; 175 175 while(!this.closed) { 176 Duit.mainIteration();176 GtkD.mainIteration(); 177 177 } 178 178 writefln("closed is %d", this.closed); trunk/src/leds/Language.d
r192 r230 103 103 * @param codeview 104 104 */ 105 void addFolds( )105 void addFolds(bool collapse) 106 106 { 107 107 trunk/src/leds/LanguageD.d
r223 r230 326 326 327 327 328 void addFolds() 329 { 330 331 Element sourceModule = getCachedModule(); 332 333 this.addFoldsElement(sourceModule, 0); 334 335 } 336 337 void addFoldsElement(Element element, int foldOffset) 328 void addFolds(bool collapse) 329 { 330 // we need to make sure we are getting raw data here (unsorted!) 331 Element sourceModule = getCachedModule(true); 332 333 foldActiveLine = 0; 334 this.addFoldsElement(sourceModule, 0,collapse); 335 debug(folding) for(int i=0;i< codeview.getCodeEdit().getLineCount();i++) { 336 writefln("%d : %d / %d : %s", 337 i, 338 codeview.getCodeEdit().getFoldLevel( i) & SC_FOLDLEVELNUMBERMASK, 339 codeview.getCodeEdit().getFoldLevel( i) & SC_FOLDLEVELHEADERFLAG, 340 codeview.getCodeEdit().getLineText(i)); 341 } 342 343 } 344 int foldActiveLine; 345 void addFoldsElement(Element element, int foldOffset, bool collapse) 338 346 { 339 /* 340 writefln("got Element: ", 341 " Form: ", element.getBrowserForm().toString, // definition. 342 " Modifiers: ", element.getModifiers().toString, // return type 343 " Element: ", RowType.ELEMENT, 344 " Type: ", new String(cast(int)element.getType()), 345 " Line: ", new String(element.getLineInCode()), 346 "-", new String(element.getLastLineInCode()), 347 "" 348 ); */ 349 350 /* Types: 351 22 = The file? 352 2 = import 353 3 = enum 354 6 = var? 355 9 = version? 356 17 = interface? 357 20 = class? 358 21 = method 359 */ 360 int newFoldOffset = foldOffset; 361 if (element.endLine > 0 && ( 347 if ((element.endLine > 0) && (element.startLine >= foldActiveLine) && ( 362 348 (element.getType() == Element.CLASS) || 363 349 (element.getType() == Element.FUNCTION) || … … 367 353 (element.getType() == Element.ENUM) 368 354 )) { 369 // add a marker.. 370 371 codeview.getCodeEdit().markAdd( cast(int)element.startLine , 3); 372 373 374 // set the fold level on all those lines.. 375 for (int i = cast(int)element.startLine; i < element.endLine; i++) { 376 377 codeview.getCodeEdit().setFoldLevel( i, foldOffset); 378 } 379 newFoldOffset++; 380 } 381 382 383 foreach(Element elementChild ; element.elements) { 384 addFoldsElement(elementChild,newFoldOffset + 1); 385 } 386 387 355 // we do our work later... 356 } else { 357 debug(folding) writefln("skipping: %d, %s FAL=%d, ENDLINE=%d", element.startLine, element.classinfo.name, foldActiveLine, element.endLine); 358 359 foreach(Element elementChild ; element.elements) { 360 addFoldsElement(elementChild,foldOffset,collapse); 361 } 362 return; 363 } 364 debug(folding) writefln("FL %d->%d = %d", foldActiveLine, element.startLine-1, foldOffset); 365 for(int i=foldActiveLine; i < element.startLine;i++) { 366 codeview.getCodeEdit().setFoldLevel( i, foldOffset + SC_FOLDLEVELBASE); 367 } 368 foldActiveLine = element.startLine; 369 codeview.getCodeEdit().setFoldLevel( foldActiveLine, foldOffset + SC_FOLDLEVELBASE + SC_FOLDLEVELHEADERFLAG); 370 debug(folding) writefln("HL %d = %d : %s", foldActiveLine, foldOffset +1, element.name); 371 foldActiveLine++; 372 foreach(Element elementChild ; element.elements) { 373 addFoldsElement(elementChild,foldOffset+1,collapse); 374 } 375 debug(folding) writefln("FL %d->%d = %d", foldActiveLine, element.endLine-1, foldOffset+1); 376 for(int i=foldActiveLine; i < element.endLine+1;i++) { 377 codeview.getCodeEdit().setFoldLevel( i, foldOffset + SC_FOLDLEVELBASE + 1); 378 } 379 foldActiveLine = element.endLine+1; 380 if (collapse && 381 ((element.getType() == Element.FUNCTION) || 382 (element.getType() == Element.CONSTRUCTOR) || 383 (element.getType() == Element.DESTRUCTOR)) 384 ) { 385 codeview.getCodeEdit().toggleFold(element.startLine); 386 } 388 387 } 389 388 … … 644 643 { 645 644 //printf("setDLex 1\n"); 646 scintilla.send(SCI_SETLEXER, SCLEX_CPP, 0); 645 scintilla.send(SCI_SETLEXER, SCLEX_D, 0); 646 scintilla.send(SCI_SETSTYLEBITS, 5, 0); // not sure what this does. 647 647 648 scintilla.send(SCI_SETKEYWORDS, 0, cast(sptr_t)cast(char*) 648 649 " int bit bool char byte cent ubyte ucent uint ulong union ushort wchar" … … 697 698 //printf("setDLex 2\n"); 698 699 699 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENT, scintilla.getColor("color.Comment.D", 0x009000)); 700 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENTLINE, scintilla.getColor("color.CommentLine.D", 0x009000)); 701 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENTDOC, scintilla.getColor("color.CommentDoc.D", 0x009000)); 702 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENTLINEDOC, scintilla.getColor("color.CommentDoc.D", 0x009000)); 703 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENTDOCKEYWORD, scintilla.getColor("color.CommentDoc.D", 0x00C000)); 704 scintilla.send(SCI_STYLESETFORE, SCE_C_COMMENTDOCKEYWORDERROR, scintilla.getColor("color.CommentDoc.D", 0x00C000)); 705 706 scintilla.send(SCI_STYLESETFORE, SCE_C_NUMBER, scintilla.getColor("color.number.D", 0xC00000)); 707 scintilla.send(SCI_STYLESETFORE, SCE_C_WORD, scintilla.getColor("color.keyWord.D", 0x0000F0)); 708 scintilla.send(SCI_STYLESETFORE, SCE_C_STRING, scintilla.getColor("color.string.D", 0xC00000)); 709 scintilla.send(SCI_STYLESETFORE, SCE_C_STRINGEOL, scintilla.getColor("color.stringEOL.D", 0xFF0000)); 710 scintilla.send(SCI_STYLESETFORE, SCE_C_CHARACTER, scintilla.getColor("color.char.D", 0xC00000)); 711 712 scintilla.send(SCI_STYLESETFORE, SCE_C_DEFAULT, 0x000000); 713 scintilla.send(SCI_STYLESETFORE, SCE_C_UUID, 0x000000); 714 scintilla.send(SCI_STYLESETFORE, SCE_C_PREPROCESSOR, 0x000000); 715 scintilla.send(SCI_STYLESETFORE, SCE_C_OPERATOR, 0x000000); 716 scintilla.send(SCI_STYLESETFORE, SCE_C_IDENTIFIER, 0x000000); 717 scintilla.send(SCI_STYLESETFORE, SCE_C_VERBATIM, 0x000000); 718 //send(SCI_STYLESETBACK, SCE_C_VERBATIM, 0x000000); 719 scintilla.send(SCI_STYLESETFORE, SCE_C_REGEX, 0x000000); 720 scintilla.send(SCI_STYLESETFORE, SCE_C_WORD2, 0x000000); 721 scintilla.send(SCI_STYLESETFORE, SCE_C_GLOBALCLASS, 0x000000); 722 723 scintilla.send(SCI_STYLESETBOLD, SCE_C_OPERATOR, 1); 724 scintilla.send(SCI_STYLESETBOLD, SCE_C_STRING, 1); 725 scintilla.send(SCI_STYLESETBOLD, SCE_C_STRINGEOL, 1); 726 scintilla.send(SCI_STYLESETBOLD, SCE_C_CHARACTER, 1); 727 scintilla.send(SCI_STYLESETBOLD, SCE_C_NUMBER, 1); 728 scintilla.send(SCI_STYLESETBOLD, SCE_C_WORD, 0); 700 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENT, scintilla.getColor("color.Comment.D", 0x009000)); 701 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTLINE, scintilla.getColor("color.CommentLine.D", 0x009000)); 702 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTDOC, scintilla.getColor("color.CommentDoc.D", 0x009000)); 703 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTNESTED, scintilla.getColor("color.CommentDoc.D", 0x009000)); 704 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTLINEDOC, scintilla.getColor("color.CommentDoc.D", 0x009000)); 705 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTDOCKEYWORD, scintilla.getColor("color.CommentDoc.D", 0x00C000)); 706 scintilla.send(SCI_STYLESETFORE, SCE_D_COMMENTDOCKEYWORDERROR, scintilla.getColor("color.CommentDoc.D", 0x00C000)); 707 708 scintilla.send(SCI_STYLESETFORE, SCE_D_NUMBER, scintilla.getColor("color.number.D", 0xC00000)); 709 scintilla.send(SCI_STYLESETFORE, SCE_D_WORD, scintilla.getColor("color.keyWord.D", 0x0000F0)); 710 scintilla.send(SCI_STYLESETFORE, SCE_D_STRING, scintilla.getColor("color.string.D", 0xC00000)); 711 scintilla.send(SCI_STYLESETFORE, SCE_D_STRINGEOL, scintilla.getColor("color.stringEOL.D", 0xFF0000)); 712 scintilla.send(SCI_STYLESETFORE, SCE_D_CHARACTER, scintilla.getColor("color.char.D", 0xC00000)); 713 714 scintilla.send(SCI_STYLESETFORE, SCE_D_DEFAULT, 0x000000); 715 //send(SCI_STYLESETBACK, SCE_D_VERBATIM, 0x000000); 716 scintilla.send(SCI_STYLESETFORE, SCE_D_WORD2, 0x000000); 717 scintilla.send(SCI_STYLESETFORE, SCE_D_WORD3, 0x000000); 718 719 720 scintilla.send(SCI_STYLESETBOLD, SCE_D_OPERATOR, 1); 721 722 scintilla.send(SCI_STYLESETBOLD, SCE_D_TYPEDEF, 1); 723 scintilla.send(SCI_STYLESETBOLD, SCE_D_STRING, 1); 724 scintilla.send(SCI_STYLESETBOLD, SCE_D_STRINGEOL, 1); 725 scintilla.send(SCI_STYLESETBOLD, SCE_D_CHARACTER, 1); 726 scintilla.send(SCI_STYLESETBOLD, SCE_D_NUMBER, 1); 727 scintilla.send(SCI_STYLESETBOLD, SCE_D_WORD, 1); 729 728 730 729 … … 763 762 scintilla.setBGColor(backGround); 764 763 765 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENT, true); 766 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTLINE, true); 767 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTDOC, true); 764 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENT, true); 765 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTLINE, true); 766 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTNESTED, true); 767 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTDOC, true); 768 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTLINEDOC, true); 769 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTDOCKEYWORD, true); 770 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_COMMENTDOCKEYWORDERROR, true); 771 772 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_NUMBER, true); 773 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_TYPEDEF, true); 774 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_WORD, true); 775 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_STRING, true); 776 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_STRINGEOL, true); 777 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_CHARACTER, true); 768 778 769 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENT, true); 770 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTLINE, true); 771 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTDOC, true); 772 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTLINEDOC, true); 773 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTDOCKEYWORD, true); 774 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_COMMENTDOCKEYWORDERROR, true); 775 776 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_NUMBER, true); 777 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_WORD, true); 778 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_STRING, true); 779 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_STRINGEOL, true); 780 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_CHARACTER, true); 781 782 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_DEFAULT, true); 783 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_UUID, true); 784 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_PREPROCESSOR, true); 785 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_OPERATOR, true); 786 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_IDENTIFIER, true); 787 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_VERBATIM, true); 788 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_REGEX, true); 789 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_WORD2, true); 790 scintilla.send(SCI_STYLESETEOLFILLED, SCE_C_GLOBALCLASS, true); 779 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_DEFAULT, true); 780 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_OPERATOR, true); 781 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_IDENTIFIER, true); 782 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_WORD2, true); 783 scintilla.send(SCI_STYLESETEOLFILLED, SCE_D_WORD3, true); 791 784 792 785 } … … 891 884 static d_time cachedModuleReadTime; 892 885 893 Module getCachedModule( )886 Module getCachedModule(bool force=false) 894 887 { 895 888 Project project = codeview.getProject(); … … 903 896 //writefln("trying to get cached view"); 904 897 // we probably do not want to keep reloading this.. 905 bool usecache = true;898 bool usecache = !force; 906 899 if (!LanguageD.cachedString || !LanguageD.cachedString.length || !LanguageD.cachedModule) 907 900 { trunk/src/leds/LanguageJava.d
r186 r230 66 66 67 67 68 69 68 70 69 void setLex(Scintilla scintilla) trunk/src/leds/LanguagePHP.d
r187 r230 49 49 static d_time cachedModuleReadTime; 50 50 51 Element getCachedElementBase(char[][] imports )52 { 53 bool usecache = true;51 Element getCachedElementBase(char[][] imports, bool force = false) 52 { 53 bool usecache = !force; 54 54 if (!LanguagePHP.cachedString || !LanguagePHP.cachedString.length || !LanguagePHP.cachedElementBase) { 55 55 usecache = false; … … 216 216 217 217 218 void addFolds() 219 { 218 void addFolds(bool collapse = false) 219 { 220 221 220 222 BrowserView bv = codeview.getWorkspace().getBrowserView(); 221 phpElementBase = getCachedElementBase(getImports() );223 phpElementBase = getCachedElementBase(getImports(), true ); 222 224 // fixme! 223 225 if (phpElementBase is null) { 224 226 return; 225 227 } 228 foldActiveLine = 0; 226 229 //phpElementBase.dumpAll(); 227 this.addFoldsElementPhp(phpElementBase, 0 );228 229 } 230 230 this.addFoldsElementPhp(phpElementBase, 0, collapse); 231 232 } 233 int foldActiveLine = 0; 231 234 /** 232 235 * recursively iterate through elements, and add folds. 233 236 */ 234 void addFoldsElementPhp(Element pe, int foldOffset)237 void addFoldsElementPhp(Element element, int foldOffset, bool collapse) 235 238 { 236 239 237 //writefln("ADDING PHP ELEMENT?", n , ":", pe.name , " ", pe.startline ,"...", pe.endline); 238 int newFoldOffset = foldOffset; 239 if (cast(Class) pe || cast(Method) pe) { 240 codeview.getCodeEdit().markAdd( pe.startline-1 , 3); 241 // set the fold level on all those lines.. 242 int end = (pe.endline == pe.startline) ? pe.endline : pe.endline -1; 243 for (int i = pe.startline-1; i < end ; i++) { 244 codeview.getCodeEdit().setFoldLevel( i, foldOffset+1); 245 } 246 newFoldOffset++; 247 } 248 if (cast(Method)pe) { // dont iterate down into methods. 240 if (cast(Class) element || cast(Method) element) { 241 242 // we do our work later... 243 } else { 244 245 foreach(Element elementChild ; element.elements) { 246 addFoldsElementPhp(elementChild,foldOffset,collapse); 247 } 248 249 249 return; 250 250 } 251 foreach(Element elementChild ; pe.elements) { 252 addFoldsElementPhp(elementChild,newFoldOffset); 253 } 251 252 for(int i=foldActiveLine; i < element.startline-1;i++) { 253 codeview.getCodeEdit().setFoldLevel( i, foldOffset + SC_FOLDLEVELBASE); 254 } 255 foldActiveLine = element.startline-1; 256 codeview.getCodeEdit().setFoldLevel( foldActiveLine, foldOffset + SC_FOLDLEVELBASE + SC_FOLDLEVELHEADERFLAG); 257 foldActiveLine++; 258 if (cast(Class) element) { 259 foreach(Element elementChild ; element.elements) { 260 addFoldsElementPhp(elementChild,foldOffset+1,collapse); 261 } 262 } 263 264 265 for(int i=foldActiveLine; i < element.endline;i++) { 266 codeview.getCodeEdit().setFoldLevel( i, foldOffset + SC_FOLDLEVELBASE + 1); 267 } 268 foldActiveLine = element.endline; 269 if (collapse && (cast(Method) element) ) { 270 codeview.getCodeEdit().toggleFold(element.startline-1); 271 } 272 254 273 } 255 274 trunk/src/leds/Leds.d
r225 r230 42 42 private import dool.io.FileException; 43 43 44 private import gtk. Duit;44 private import gtk.GtkD; 45 45 46 46 private import gthread.Thread; … … 788 788 }; 789 789 790 private import lib.Loader;790 private import gtkc.Loader; 791 791 private import gdk.Threads; 792 792 version(splash) … … 804 804 { 805 805 // TODO threads are still broken on windows 806 Duit.init(args);806 GtkD.init(args); 807 807 } 808 808 else 809 809 { 810 810 //Duit.initMultiThread(args); 811 Duit.init(args);811 GtkD.init(args); 812 812 } 813 813 … … 829 829 version(splash) w.destroy(); 830 830 debug(startup) writefln("Leds.main 4"); 831 Duit.main();831 GtkD.main(); 832 832 debug(startup) writefln("Leds.main 5"); 833 833 } trunk/src/leds/ListWindow.d
r187 r230 28 28 private import gtk.ScrolledWindow; 29 29 30 private import gtk .gtktypes;30 private import gtkc.gtktypes; 31 31 32 32 private import gdk.Event; trunk/src/leds/Project.d
r209 r230 71 71 72 72 // dui imports 73 private import g dk.gdktypes;73 private import gtkc.gdktypes; 74 74 private import gtk.Widget; 75 75 private import gtk.Menu; … … 79 79 private import gtk.MessageDialog; 80 80
