Programming Studio
Release History

 

 

0.14.19 — (2011-11-20)
Nyt: Man kan nu angive verbatime tekststrengs-literaler ved at placere et '@' foran literalet (i.e. @"..."). Det verbatime ligger i, at tekststrengen fortolkes uden skelen til escape-karakterer (i.e. '\\', '\t', '\r', '\n' og '\0'), og literalet kan fortsætte over flere linier, hvor linieskiftene bliver indeholdt i literalet. Bemærk, at det med verbatim ikke er muligt at indsætte et '"', da '\"' fortolkes som '\' og '"', der afslutter literalet. Bemærk også, at denne notation er kendt fra C#, men den findes ikke i Java! (se også de følgende to rettelser).
Rettet: Escape-karakterer i tekststrenge blev ikke fortolket korrekt. Man kunne f.eks. ikke lave "Dette er\nen test", med et indsat linieskift efter "Dette er".
Rettet: Tidligere blev tekststrengs-literaler delvist fortolket verbatimt. Det skete ved at literaler der strakte sig over flere linier, fik indsat de linieskift der forekom, som linieskift i literalet. Dette sker nu kun hvis man anvender verbatim som nævnt ovenfor (i.e. @"...").
Rettet: Hvis man satte et tredie semi-colon i en for-sætning gik Programming Studio i uendelig løkke. Denne og lignende situationer er rettet.
Rettet: Operatoren instanceof bliver nu (i modsætning til andre operatorer) syntax-farvet blå (som et reserveret ord). Det sker pga. operatorens tekstuelle karakter (det samme sker for den "hemmelige" operator 'is', der er C#'s 'instanceof' operator. Denne operator har i en periode ikke været tilgængelig i Programming Studio, men er det nu igen).
Rettet: Når man klikkede på en kildetekst for at åbne den, skulle man ramme enten file-navnet eller ikonet. Man kunne være uheldig at ramme et "dødt" område imellem dem, hvor ingen af de to gav et mouse click. Det område der reagerer på et mouse click er nu udvidet til det som file-navnet og ikonet udspænder (det drejer sig teknisk om to forskellige former for gennemsigtighed - én der giver et mouse click, og én der ikke gør!)
0.14.18 — (2011-11-17)
Rettet: Udtryk i erklæringer af variable (det de initialiseres til), kan ikke længere referere til den variabel der initialiseres (e.g. "int x = x;"). Det blev tidligere først opdaget under runtime, men nu fanger compileren det.
Rettet: Der var en fejl i kompensationen for den tid en tick-event-handler var om at blive udført. Tiden blev fejlagtigt akkumuleret, hvilket gjorde at events kom hurtigere og hurtigere.
Rettet: Der blev fejlagtigt indsat et default super-kald i starten af konstruktorer, der startede med et this-kald. Dette sker nu kun hvis både super- og this-kald mangler.
Rettet: En række IO-fejl vedr. "Filer"/"Projekter"-oversigten er rettet. Der er desværre endnu ikke lavet fejl-meddelelser til en del af disse; hvorfor man kan opleve det som om at system blot ignorerer det man forsøgte at gøre.
Rettet: Det var ikke muligt at anvende underscore '_' i klassenavne. Det er nu tilladt ethvert sted i et klassenavn (også som første tegn, der ellers skal være et stort bogstav).
0.14.17 — (2011-11-14)
Nyt: Man kan nu erklære variable final hvorved de bliver konstante, og ikke kan ændres. Dette kan gøres for globale, lokale, statiske og instans-variable, men ikke parametre! Konstante variable kan kun tildeles en værdi ved initialiseringen - en værdi der ikke senere kan ændres! For arrays betyder det, at både array-referencen og de enkelte indgange i arrayet er konstante. Konstante arrays giver derfor kun mening, hvis de laves vha. en initialiserings-liste. For objekt-referencer har det kun betydning for referencen, ikke tilstanden i det objekt som den refererer til. Bemærk forøvrigt, at det allerede er muligt at erklære klasser final; hvilket har en anden betydning, nemlig at der ikke kan nedarves fra dem.
Rettet: Når man slettede en folder eller et projekt, og en af de indeholdte kildetekster var åbnet og ændret, blev man fejlagtigt spurgt om man ønskede at gemme! Det samme gjorde sig gældende hvis man slettede kildetekster enkelvis, der var åbne og ændret.
Rettet: Compileren fangede ikke forsøg på at tilgå statiske variable via objekt-referencer.
Rettet: Det var muligt at lave flere klasser med det samme navn.
Rettet: Fejl ved casting der vedrørte andet end klasser gav en "ukendt fejl".
0.14.16 — (2011-11-14)
Rettet: I forbindelse med rename af directories, projects etc. kunne der opstå fejl mht. hvilket navn der blev registreret; hvilket førte til at det ikke var muligt at oprette nye klasser etc. (bemærk, at man kan update oversigten fra context-menuen, hvis denne fejl skulle opstå på anden vis).
Rettet: Programming Studio kunne gå i uendelig løkke, når den (fejlagtigt) fandt en tom sætning efter en erklæring med en array-initialiseringsliste.
0.14.15 — (2011-11-10)
Nyt: Ny metode: sign( long value ), der returnerer -1, 0, eller 1, alt efter om 'value' er negativ, nul eller positiv.
Nyt: Ny metode: long currentTimeMillis(), der returnerer aftanden i tid målt fra 1/1-1970 kl. 00:00 til nu. Det er en metode der stammer fra UNIX, og som også findes i Java. Bemærk, at metodens opløsning er begrænset, og på hinanden følgende kald kan derfor være ens, selvom der går mere end 1 ms. mellem dem.
Rettet: Hvis man lavede en lokal variabel i en metode, der havde en parameter med samme navn, blev fejlen først opdaget under runtime. Den bliver nu fanget af compileren.
Rettet: Long literaler bliver nu syntax-farvet røde, som andre literaler (konstanter i kildeteksten). Et long literale skrives på samme måde som en integer, blot med et afsluttende 'L' (e.g. "80000L")
0.14.14 — (2011-11-09)
Nyt: Man kan nu lave invarianter. Disse håndteres teknisk set som sætninger, og kan placeres alle steder hvor man kan placere sætninger. De er syntaktisk på formen "[ <boolsk-udtryk> ]" (e.g. "[ i < 5 ]"). Bemærk, at invarianterne ikke skal have et efterstillet ";", da de semantisk ikke er sætninger, men udtryk der knytter sig til steder i koden. Udtrykkene vil blive evalueret hver gang programudførelsen når til invarianten. Er invarianten ikke opfyldt terminerer programmet med en fejl-meddelelse, om at invarianten ikke var opfyldt.
Rettet: I visse tilfælde fejlede indikationen af om en kildetekst var blevet ændret siden den sidst var blevet gemt. Dette medførte at man nogle gange blev spurgt om man ville gemme en kildetekst, der allerede var gemt. Dette er nu rettet (det var et '==', der skulle være et '<=').
Rettet: Hvis man anførte en tom sætning i en sammensat sætning gik Programming Studio i uendelig løkke.
Rettet: Compileren fangede ikke fejl ved reference til instans-variable/metoder via et klasse-navn (static), og opdagede først fejlen under udførelse af programmet. Dette førte til en misvisende fejlmeddelelse. Nu fanges fejlen under compilering.
Rettet: Hvis man forsøgte at tekststrengs-concatenere en tekst sammen med et metodekald der returnerede 'void' blev det først opdaget under runtime, det fanges nu af compileren.
Rettet: Det var muligt at anføre 'super' som operand, i andre situationer end som venstre operand i dot-udtryk.
0.14.13 — (2011-11-06)
Nyt: En format(...)-metode, der kan bruges til at formatere kommatal til et bestemt antal cifre før og/eller efter
kommaet, samt mulighed for indsættelse af ',' for hver tusind. Se dokumentationen.
Nyt: En round(...)-metode, der kan bruges til at afrunde kommatal til et bestemt antal cifre efter kommaet (evt. ingen). Se dokumentationen.
Nyt: Man kan nu anføre en instantiering alene som en sætning (e.g. "new A();"). Det er noget man meget sjældent bruger, men det er teknisk muligt i Java/C#, så derfor også i Programming Studio. Det er også blevet muligt at allokere arrays på samme måde (e.g. "new int[ 10 ];"). Det er til gengæld kun i Programming Studio det er muligt, og det er ganske uanvendeligt! Det blev automatisk muligt da det blev muligt at lave en instantiering som sætning, og jeg fandt ikke anledning til at forhindre det.
Rettet: Håndteringen af at man anvender en global variabel inden den er blevet erklæret er tidligere blevet løst, så man under runtime får en fejl. Arrays bliver håndteret for sig, og samme håndtering var ikke blevet tilføjet dér, det er den nu, så man også i forbindelse med array referencer får denne runtime-fejl (istf. "ukendt fejl").
Rettet: Hvis man erklærede en klasse og glemte/slettede dens navn efter "class", fik man "ukendt fejl".
0.14.12 — (2011-11-01)
Nyt: Nye metoder sqr( int x ) og sqr( double x ), der beregner kvadratet af parameteren.
Rettet: Der fanges nu runtime-fejl vedr. ulovlige parametre for følgende metoder og konstruktorer: sqrt(...), log( double x ), log10( double x ), asin( double x ), acos( double x ), random( int max ), random( int min, int max ), tickDelay( double secs ), String.charAt( int i ), String.substring( int start ), String.substring( int start, int end ), String.compareTo( String other ), PixelPanel.PixelPanel( int width, int height ). Metoderne i String-klassen har tidligere returneret "dummy"-værdier hvis parametrene var ulovlige, eller klaret sig på anden måde, men de giver nu i stedet en runtime-fejl for ulovlige parametre.
Rettet: sqrt( int ) kunne ikke håndtere parameteren 0.
Rettet: Hvis man ifbm. tekststrengs-concatenering (klistre-plus) anførte et klasse-navn som operand gik Programming Studio ned. Det skyldes en fejl der opstår, når det bliver forsøgt at kalde toString() på selve klassen. Man får nu i stedet en fejl-meddelelse.
Rettet: Når man anførte et klasse-navn som aktuel parameter til metoder og konstruktorer fik man diverse fejl, og i værste fald (hvis det var et kald af f.eks. println-metoden, der dernæst ville kalde toString() på selve klassen) kunne Programming Studio gå ned. Man får nu i stedet en fejl-meddelelse.
Rettet: Når man fik en "ukendt fejl" kunne man ikke efterfølgende anvende editoren, da det ikke blev ordentlig registreret at programmet var termineret.
0.14.11 — (2011-10-30)
Nyt: Hvis man forsøger at ændre i kildeteksten, mens der er et program der kører, får man en advarsel om at dette ikke er muligt. Tidligere blev ens forsøg på at ændre i kildeteksten blot ignoreret.
Rettet: Check af fejl, og fejlmeddelelse, ifbm. manglende værdier i array-initialiseringslister (e.g. int[] t = { 1, 2, , 4 };) er nu lavet. Samtidig accepteres det at sidste indgang i en initialiseringsliste er tom (e.g. { 1, 2, 3, }), og ignoreres (som det er sædvane i f.eks. Java og C#), da disse ektra afsluttende kommaer let opstår ved copy/paste, og der ikke er grund til plage programmøren med at skulle fjerne dem.
Rettet: Man får nu en fejlmeddelelse, hvis man laver et metodekald hvor der mangler en aktuel parameter (e.g. m( 2, , 4 )), før fik man en "ukendt fejl". Det samme gælder for instantiering med parametre til konstruktorer, og this-kald fra konstruktor til konstruktor.
Rettet: Man får nu en fejlmeddelelse, hvis man erklærer en metode med to eller flere formelle parametre med samme navn, før fik man en "ukendt fejl".
Rettet: Hvis det måtte opgives at oversætte en klasse, blev klassen ikke registreret; hvilket kunne trække en del "ukendt klasse"-fejl, der var misvisende. Nu bliver klassen altid registreret uanset hvor galt det går med at oversætte den, og man undgår disse følgefejl.
0.14.10 — (2011-10-30)
Nyt: Hvis installationen af Programming Studio bliver ødelagt ved at en eller flere af language-filerne slettes, eller at standard library helt eller delvist slettes, får man nu en anvisning om at geninstallere programmet (tidligere gik det ned).
Rettet: En fejl introduceret i 0.14.9, der slog auto completion af (), [], etc. fra er rettet, og det huskes nu om auto completion var den sidste handling, så ( ) + ) => (), og tilsvarende for [], kun udføres i umiddelbar forlængelse af en auto completion handling.
Rettet: Konstanterne: true, false og null bliver nu syntax-farvet (rød).
Rettet: Check af fejl, og fejlmeddelelser, ifbm. array-initialiseringslister er blevet forbedret, så der nu checkes om listerne har det rigtige antal dimensioner, om elementerne er indbyrdes compatible (e.g. man kan ikke have et array med en blanding af booleans og integers), og at element-typen i forbindelse med assignment og erklæring er den forventede.
0.14.9 — (2011-10-28)
Rettet: Typecheck ved adgang til array elementer vha. dot-udtryk (i.e. <object-reference>.<array>[...]) ville fejlagtigt altid betragte det samlede udtryk som værende af array-reference-typen, istf. element-typen.
Rettet: Når man tilgik arrays vha. dot-udtryk (i.e. <object-reference>.<array>[...]), blev index-udtrykkene evalueret i den kontekst som tilhørte venstre operand, og ikke lokalt hvor dot-udtrykket optræder; hvilke de skal.
Rettet: Når man i forbindelse med diverse former for assignments (=, +=, etc.) lavede typefejl (e.g. assignede en integer variabel til en boolsk værdi) ville fejl-meddelelsen ofte referere til en forkert fil.
Rettet: En sjælden fejl, hvor Programming Studio før version 0.14.8 kunne gå ned ved Ctrl+C, menes at være fundet, idet den skyldes en svaghed i WIN32 API'en, der kan have et problem med at få adgang til clipboard/udklips-holderen (en race condition). Et workaround er nu anvendt, hvor der ti gange i løbet af et sekund prøves at få adgang. Det er en løsning som anvendes internt i Windows Forms, men underlig nok ikke bruges i WPF. Den er nu implementeret i forbindelse med både Ctrl+X, Ctrl+C og Ctrl+V, selv om det ikke er observeret i forbindelse med andet end Ctrl+C. Men da alle tre operationer tilgår clipboard/udklipsholderen er det gjort for en sikkerheds skyld. Skulle det helt usandsynlige ske, at disse ti forsøg alle fejler, vil kommandoen ikke blive udført!
Bemærk: Der er gjort et forsøg på at løse problemet med at Programming Studio ikke kan opdatere på Windows 7, ved at indføre en app.manifest-fil. Hvis det løser probemet, vil det først kunne observeres ved opdatering fra denne version (0.14.9) til næste version (formodentlig 0.14.10). Hvis det løser problemet, kræver det muligvis at Programmering Studio er installeret (i.e. udpakket) i "Program Files".
0.14.8 — (2011-10-27)
Rettet: Når man markerede flere linier gik Programming Studio ned, hvis man trykkede på en tast der anvendte auto completion ifbm. '(', '[', '"' og '''.
Rettet: Der var på nogle platforme problemer med at mouse wheel var meget langsom til at scrolle teksten.
Rettet: Det blev ikke opdaget hvis to konstruktorer havde de samme parametre (i.e. at man havde lavet den samme konstruktor mere end én gang, men evt. med forskelligt indhold). Dette gjorde sig tilsvarende gældende for metoder med samme navn og parametre i en klasse, og globale metoder med samme navn og parametre.
Rettet: Hvis man oversætter et projekt, hvor projekt-directoriet ikke (længere) er tilgængeligt, får man nu ikke en "ukendt fejl" men en fejlmeddelelse. Dette kan f.eks. forekomme, hvis man deler et projekt over netværket, og projekt-directoriet enten bliver slettet eller ændrer navn/placering.
0.14.7 — (2011-10-26)
Rettet: Et par problemer med Shift+Tab (rykker de markerede linie til venstre) er løst. Et af disse kunne få Programming Studio til at gå ned.
Rettet: Programming Studio gik ned, hvis man satte en slut-parantes (')' eller ']') sidst i en kildetekst.
Rettet: Det var kun muligt at kalde instans-metoder, hvis parametrene passede præcist typemæssigt. Det er nu rettet så man også kan kalde metoder, hvis der automatisk kan konverteres mellem parameter-typerne. F.eks. kunne man ikke kalde en instans-matode der tog en double som parameter, med et kald der havde en integer som aktuel parameter.
Rettet: Compileren accepterede ikke at en konstruktor havde en return-sætning, hvilket den godt må, så længe den ikke returnerer noget.
Rettet: Markeringslinien ved code completion har fået en farve med større kontrakst til baggrunden.
Bemærk: Ctrl-C kunne i visse situationer få Programming Studio til at gå ned. Det er uklart hvorfor, men det er nu indkapslet, så Programming Studio i disse situationer fanger fejlen, sender en report om det, og viser en advarsel på skærmen om at Crtl-C ikke blev udført.
0.14.6 — (2011-10-25)
Rettet: Et par "ukendte fejl" (ifbm. at kildeteksten slutter uventet) er erstattet med fejlmeddelelser.
Rettet: Der udløses ikke længere en tick-event før håndteringen af den foregående tick-event er afsluttet af handleTick-metoden.
0.14.5 — (2011-10-24)
Nyt: Simpel formatering af kildeteksten ved justering af indrykninger (Edit-menupunkt, eller Ctrl+D). Det er et "work in progress", og skulle man få et uønsket resultat, kan man som altid undo med Ctrl+Z.
Nyt: Når man laver en block kommentar indsættes der automatisk "*" ved linieskift.
Rettet: Smart indent er forbedret.
Rettet: Automatisk indsættelse af "{...}" indretter sig nu efter, om det er en array-initialiseringsliste.
0.14.4 — (2011-10-17)
Nyt: Man kan nu navigere mellem flere åbne filer med Ctrl+Tab og Ctrl+Shift+Tab. Ctrl+Tab vil spole de åbne filer igennem i en rækkefølge der er bestemt af hvornår man har arbejdet med dem (de har haft fokus). En gang Ctrl+Tab vil føre én tilbage til den forrige åbne fil, man arbejdede med, mens 2 x Ctrl+Tab (hvor Ctrl ikke slippes under de to gange man trykker på Tab) vil føre én tilbage til den før den man før arbejdede med, osv. Ctrl+Shift+Tab kører den modsatte vej, og anvendes normalt når man er "kørt for langt tilbage". Mens man "spoler" frem og/eller tilbage vil man skifte mellem filerne, men det er først når man slipper Ctrl, at fil-skifte bliver registreret som en fil man har arbejdet med. Dvs. at arbejder man med en fil X, og spoler et stykke tilbage i filerne (med Ctrl+Tab) og vælger en fil, vil ét efterfølgende Ctrl+Tab føre én tilbage til filen X. Det er lidt vanskeligt at forklare, men har man prøvet det i et stykke tid vil man forstå systemet, der er meget nyttigt og anvendes i Visual Studio og andre udviklings-værktøjer.
Nyt: Der er kommet en navigations-bar (jeg er ikke bekendt med den mere præcise betegnelse), til højre for scrollbar'en. Den kan bruges til at navigere rundt mellem fejl i kildekoden, og giver samtidig en grafisk oversigt over, hvor i koden der er fejl. En lignende navigations-bar kendes fra Eclipse, men den findes desværre ikke i Visual Studio. Det er tanken, at den på sigt, også skal kunne bruges til at navigere rundt mellem andre markeringer end fejl.
Nyt: Programming Studio husker nu om man sidst havde brugt "Filer"- eller "Projekter"-tab'en når programmet starter.
Nyt: Toolbar'en har fået en knap til kompilering (blå trekant, der peger ned).
Nyt: Programming Studio kan ikke opdatere sig selv (teknisk set er det dog AutoUpdater.exe der gør det) mens programmet kører. Dette bliver nu checket, og man får i givet fald en messagebox med besked om at lukke alle instanser af Programming Studio man måtte have kørende, og så prøve igen. (Tidligere gik den nye instans af Programming Studio man prøvede at starte ned).
Rettet: I oversigten Filer/Files blev der ikke kun vist txt-filer, men f.eks. også image-filer. Det er nu rettet, så kun txt-filer vil være med i oversigten.
Rettet: Når man forøgede font-størrelsen blev den horisontale scrollbar sat forkert, svarende til at den kunne rykke kildeteksten lidt til højre.
Rettet: En række "ukendte fejl" (vedr. parameter-lister, udtryk og brug af variable før de erklæret) er blevet erstattet med fejlmeddelelser.
0.14.3 — (2011-10-14)
Rettet: 0.14.2 var meget ustabil og gik ofte ned. Det skyldes en fejl i diverse markeringer af tekst i projekter (i.e. programmer bestående af flere filer). Det er indtil videre slået fra; hvorfor markeringen af fejl ol. i projekter kun sker ved at cursoren placeres hvor fejlen er, når man klikker på fejl-listen (hvis fejlen knytter sig til et bestemt sted).
Rettet: Det var muligt for Programming Studio at gå ned uden selv at fange situationen og sende en fejl-rapport tilbage til serveren, inden den gik endelig ned. De sidste huller skulle i den forbindelse være lukket, men det ændrer ikke umiddelbart på hvor ofte dette vil ske. Til gengæld synes ovennævnte (det med markeringerne) at være hovedkilden til at Programming Studio går ned. I forbindelse med de øvrige fejl skulle nævnte fejl-rapporter hjælpe med at fjerne de sidste af den slags fejl.
Bemærk: I forbindelse med visse fejl der tidligere ville have fået Programming Studio til at gå ned, er det nu muligt for programmet at køre videre. Der sendes i den forbindelse en fejl-rapport, men pga. lagdelingen i programmet er det ikke muligt at meddele dette i brugergrænsefladen. I disse situationer vil der i stedet blive åbnet et debug-vindue, som ellers kun anvendes når jeg arbejde med programmet. I dette vindue vil der være et stack trace der næppe fortæller jer noget om fejlen, men alternativet ville være at man ville kunne udføre ting, der slog fejl, uden at man som bruger vil få besked om det. Man kan roligt lukke debug-vinduet – blev vil blive åbnet igen, hvis der opstår flere af den slags fejl.
Bemærkning: Pga. at 0.14.2 var meget ustabil blev den rullet tilbage til 0.13.3, men i den korte tid 0.14.2 var kørende (omkring en time) blev der ikke logget nogen "ukendte fejl", så den side af sagen synes umiddelbart at være forbedret.
0.14.2 — (2011-10-13)
Nyt: Listen med fejl bliver nu sorteret (først efter filnavn og dernæst efter linienummer).
Rettet: Håndteringen af "Ukendte fejl" er forbedret, og det skulle i væsentlig grad reducere forekomsten af dem.
Rettet: I String-klassen manglede charAt( int ) og substring( int, int ) check af at parametrene var lovlige index.
0.14.1 — (2011-10-12)
Nyt: I forbindelse med at der sendes beskeder tilbage til serveren vedr. visse fejl, vil der for fremtiden blive inkluderet stykker af kildeteksten i disse beskeder. Det skyldes at det i de fleste tilfælde er meget vanskeligt, om overhovedet muligt, at lokalisere fejlen uden at se den del af kildeteksten den vedrører.
Nyt: Det er nu muligt at undo længere tilbage end seneste save (helt tilbage til da filen blev åbnet). Det skyldes at måden hvorpå det detekteres om kildeteksten er blevet ændret (i editoren) er blevet forbedret.
Nyt: Der er nu markeringer i editoren, der viser hvilke linier der er blevet ændret siden filen blev åbnet, og siden den sidst er blevet saved. Markeringerne er lodrette streger lige til højre for linie-numrene. En tynd linie tæt ved linie-nummeret indikerer at linien er blevet ændret i tidsrummet mellem filen blev åbnet og den sidst blev saved, mens en lidt bredere linie, lidt længere til højre, indikerer at linien er blevet ændret siden sidste save.
Nyt: Før hver enkelt kildetekstfil oversættes undersøges det nu om diverse former for paranteser grundlæggende giver mening. Dvs. at der ikke mangler start-/slut-paranteser og at de nester inden i hinanden. Hvis disse grundlæggende forudsætninger ikke er opfyldt, får man en fejl med det samme, og deres gøres ikke yderligere forsøg på at oversætte filen før det er bregt iorden. Der vil i editoren dynamisk (mens man taster) blive vist en rød markering omkring de paranteser der synes at være involveret i et sådant problemet. Da man ikke med sikkerhed kan sige hvad der er galt, da man ikke altid kan gætte hvad der skulle have stået i kildeteksten, vil disse markeringers kun give en indikation af hvad der kan være galt.
Nyt: I listen over fejl er der tilføjet en ny kolonne med navnet på den fil hvor fejlen befinder sig.
0.14 — (2011-10-09)
Nyt: Det er nu muligt at arbejde med tekst-filer med indlæsning og udskrivning (se dokumentationen under "Filer")
Nyt: Der er kommet en ny klasse: PixelImage, som kan anvendes ifbm. PixelPanel (se dokumentationen under "PixelPanel")
Nyt: PixelPanel har fået nye metoder: void DrawImage( int, int, PixelImage ), der kan tegne et image, og void showGrid( boolean ), der kan slå mellemrum mellem pixels til og fra.
Nyt: Klassen Colors er blevet udvidet med farven: Colors.Transparent, der repræsenterer den gennemsigtige farve.
Ændret: Hvis et program "løber tør" for globale sætninger, vil et åbent PixelPanel nu holde programmet i live, så PixelPanel ikke lukker, og event-handlere stadig kan håndtere events. Når man lukker PixelPanel vil programmet altid terminere (Programmet vil også stadig terminere hvis man trykker på stop-knappen, eller kalder terminate-metoden). Formålet med denne ændring er at programmer nu ikke er nød til at slutte med en uendelig løkke for at kunne holdes i live; hvilket hidtil har været nødvendigt hvis man ville holde PixelPanel i live.
Ændret: Implementationen af void print( String ) er flyttet fra stdlib.txt, til at være en native metode; hvilket har gjort den betydelig hurtigere (ved udskrift af meget lange teksstrenge, på flere tusinde tegn, er den blevet op til 500 gange hurtigere!). Dette har også indirekte gjort udskrift af andre datatyper hurtigere.
Rettet: void handleMouseClick( int, int ), ifbm. MouseClick event'en, fik ikke de rigtige koordinater når man havde ændret y-aksens retning til voksende opad (den matematiske y-akse). Nu er koordinaterne de rigtige i begge tilfælde.
Rettet: Ved index out of bounds ifbm. arrays, fik man i nogle tilfælde en misvisende fejlmeddelelse.
0.13.3 — (2011-10-06)
Nyt: Event-systemet er udvidet med KeyUp og MouseClick events, der begge knytter sig til PixelPanel. De to handlere er henholdsvis: void handleKeyUp( char c ) og void handleMouseClick( int x, int y ).
Nyt: PixelPanel har fået en ny metode: void flipY(), der vender orienteringen på y-aksen. Hvis man f.eks. laver noget der knytter sig til det matematiske koordinat-system (tegner grafer af funktioner ol.) er det upraktisk at skulle omregne mellem et kordinat-system hvor y vokser opad til et hvor y vokser nedad (skærm-koordinater).
Nyt: Tegn-literaler får nu automatisk sat slut-', som det kendes fra teksstrengs-literaler med slut-". Det kan slås fra under Indstillinger.
Nyt: Hvis man markerer et stykke tekst og trykker ", ', ( eller [, vil den markerede tekst blive erstattet med den samme tekst med de pågældende tegn " eller ' udenom, eller de respektive start- og slut-paranteser. Om dette er slået til styres af de samme indstillinger som styrer om disse sættes parvist når der ikke er markeret en tekst (hvilket default er slået til).
0.13.2 — (2011-10-05)
Nyt: PixelPanel er udvidet med metoderne: drawLine(...), drawRectangle(...) og fillRectangle(...).
Nyt: Når man starter et program, vil baggrunds-farven i konsolen skifte mellem en lys og lidt mørkere blå farve, der tydeliggøre, at man har foretaget en ny kørsel af programmet. Det har tidligere været svært at se om man har kørt programmet; hvis to på hinanden følgende kørsler har givet det samme output i konsolen.
Rettet: Manglende syntax-farvning af "void" og "static".
Rettet: Farverne: Colors...Grey er ændret til de tilsvarende: Colors...Gray. Grey er UK english og Gray er US english, og da "computer engelsk" normalt er US english er navnene ændret (et andet eksempel er Colour for Color; hvor først nævnte er UK english).
Rettet: Auto-completion fjernede ikke altid et ord fra listen, hvis man havde skrevet det fuldt ud. Mere konkret skete det ikke hvis det ville blive auto-completed med et efterfølgende mellemrum.
0.13.1 — (2011-10-03)
Nyt: Hvis man laver en fil ved navn "userlib.txt" i roden af "Filer" (ikke "Projekter"), vil indholdet af denne fil blive inkluderet i alle ens programmer (den vil blive læst ind efter "standard library" og før de filer der indgår i ens eget program). Selvom filen skal placeres under "Filer" vil den også blive læst ind ifbm. "Projekter". (måske et godt sted at placere en metode der kan udskrive et array af integers!)
Nyt: Når man i editoren taster ')' vil den; hvis det nærmeste tegn før cursoren er et '(' og det nærmeste tegn efter er ')' fjerne et evt. indhold af mellemrum mellem '(' og ')', samt placere cursoren efter ')'. Dette sker kun hvis start- og slut-parantes står på samme linie. Den reelle effekt af dette, er at man ved at taste '(' og ')' får det forventede resultat (nemlig "()"), selvom der et kort øjeblik måtte stå "( )" pga. auto-completion af start-parantesen.
Rettet: Ved code completion sættes der ikke længere mellemrum efter "else", "true" og "false".
Rettet: En fejl omkring manglende code completion ved forskel i casing (e.g. "str" skal kunne blive "String") er rettet.
Rettet: Har man allerede indtastet et helt ord bliver det ikke længere tilbudt ifbm. code completion (e.g. "else")
Rettet: Delay mellem tick events blev påvirket af hvor lang tid handleTick-metoden var om at håndtere event'en, hvilket kunne give langt større delays mellem tick-events, hvis event-handleren havde meget at lave.
0.13 — (2011-10-02)
Nyt: PixelPanel gør det muligt at lave simpel pixel grafik.
Nyt: De første to events (KeyDown og Tick) er implementeret.
Rettet: Bruger man mouse wheel (muse-hjulet) i editoren, scroller man nu tre linier af gangen istf. kun én linie.
0.12.8 — (2011-09-28)
Nyt: Static variable og static metoder er nu understøttet.
Rettet: Code completion er udvidet med en del punkter, der er foretaget mindre justering i hvordan ting bliver vist i listen, og hvordan de bliver indsat. Der understøttes nu indsættelse af flere linier; hvilket bla. har betydning for "switch (...)", "do ... while (...);", "case ...:", "if ..." og andre. Der er tilføjet en række standard for-løkker.
Nyt: TAB kan nu bruges som alternativ til ENTER ifbm. code completion.
Nyt: Nye globale standard-funktioner: asin(), acos(), atan(), atan2(), sinh(), cosh(), tanh(), exp(), log(), log10(),
pow(), ceil(), floor(), random(), seed(), toDegrees() og toRadians().
Rettet: Forkerte operatorer (e.g. "=>" istf. ">=") giver nu en fejlmeddelelse istf. "Ukendt fejl".
Rettet: Typen long er nu fuldt understøttet, idet standard-funktionerne nu også understøtter long.
0.12.7 — (2011-09-21)
Nyt: Understøtter nu sekventielle assignments (e.g. x = y = 5; eller x *= y += 5;)
Rettet: Hvis en identifier startede med "instanceof" eller "is" blev den fejlagtigt opfattet som en operator efterfulgt af en identifier med den resterende del af navnet.
0.12.6 — (2011-09-18)
Nyt: String har fået to nye metoder: int indexOf( char c ) og String replace( char oldChar, char newChar ).
0.12.5 — (2011-09-11)
Nyt: Typen long er nu understøttet mht. variable, og aritmetiske og logiske operationer. Typen long mangler stadig at være understøttet i de globale standard-funktioner; hvilket den forventes at være i næste release.
Rettet: Hvis man i tekst-editoren skrev case eller default sidst i teksten, låste programmet (det gik i uendelig løkke).
Rettet: Hvis man skrev et udtryk som fortolkeren tekstuelt genkendte som et udtryk, men senere forkastede som et ulovligt udtryk (når den forsøgte at konvertere det til postfix) låste programmet (det gik i uendelig løkke).
0.12.4 — (2010-11-18)
Hvad der blev ændret i dette release er desværre gået i glemmebogen!
0.12.3 — (2010-11-13)
Nyt: Operatoren instanceof er nu understøttet.
Nyt: Klasser kan nu være final.
Rettet: Fejl ved casting af objekt-referencer bliver nu håndteret.
Rettet: I forbindelse med extends og implements bliver det nu checket, om man fejlagtigt forsøger at extends et interface eller at implements en klasse.
Rettet: En reference af en interface-type, kunne ikke referere til en instans af en implementerende klasse.
Rettet: Hvis en metodes retur-type er andet end void, bliver det nu kontrolleret om metoden på nogen måde er i stand til at returnere uden en værdi; hvilket ikke må kunne ske.
Kendt fejl: Hvis en klasse/interface nedarver fra sig selv, enten direkte eller indirekte, går Programming Studio ned. Fejlen vil blive rettet i en kommende opdatering.
0.12.2 — (2010-11-11)
Rettet: Der manglede kontrol af den typemæssige sammenhæng mellem return-sætninger og retur-typer for metoder.
0.12.1 — (2010-11-08)
Rettet: Der manglede en del fejlmeddelelser i forbindelse med nedarvning.
0.12 — (2010-11-08)
Nyt: Understøtter nu nedarvning, med abstrakte klasser og metoder, samt interfaces.
0.11.7 — (2010-10-27)
Rettet: Når en metode i en klasse manglede retur-typen (eller navnet) gik compileren i uendelig løkke.
Rettet: Når en klasse indeholdt andet end instans-variable, -metoder og konstruktorer (f.eks. en sætning placeret udenfor metoderne) gik kompileren i uendelig løkke.
0.11.6 — (2010-10-25)
Rettet: Når en metode lavede et objekt eller et array og dernæst returnerede det, opstod der en runtime fejl. Det skydtes at objektet/arrayet blev slettet i forbindelse med at den lokale reference variable (som alle andre lokale variable) blev fjernet ved returnering fra metoden.
0.11.5 — (2010-10-15)
Rettet: Den kendte fejl nævnt i forbindelse med version 0.11.4 er rettet.
0.11.4 — (2010-10-14)
Rettet: Hvis man glemte et kolon efter en case eller default i en switch-sætning fik man ikke en fejlmeddelelse om det.
Kendt fejl: Det ser ud til at et break i øjeblikket kun fungerer hvis der kommer en sætning efter den sætning hvori den optræder. Det har specielt betydning for en metode der afsluttes med en switch-sætning der anvender break. Fejlen bevirker at det program man er ved at udføre uden videre stopper. Man kan undgå dette problem ved at sætte et semi-kolon efter en sådan switch-sætning; hvorefter semi-kolon optræder som tom sætning, og det fungerer.
0.11.3 — (2010-10-13)
Rettet: Når man ved instantiering anvendte en default-konstruktor; hvor en sådan ikke fandtes (fordi der var lavet andre konstruktorer i en klasse, men ikke en default), fik man ikke en fejl ved kompileringen, men først en runtime-fejl når programmet kørte. Man får nu en kompilerings-fejl.
0.11.2 — (2010-10-12)
Nyt: Når man ændrer navnet på en klasse-fil i et projekt vil klassens navn i kildeteksten også blive ændret til det nye navn (forudsat at det gamle filnavn var det samme som klasssens gamle navn).
Rettet: Når man ændrede filnavnet på en klasse-fil i et projekt blev fokus ikke automatisk overført til tekst-editoren efterfølgende.
0.11.1 — (2010-10-12)
Rettet: Når en klasse havde flere instanns-variable erklæret på flere linier; hvor der på nogle af linierne blev erklæret flere variable samtidig (dvs. adskilt med komma), blev ikke alle instans-variable lavet i objektet, når man lavede instanser af klassen.
0.11 — (2010-10-10)
Nyt: Der er nu understøttelse af klasser. Der er endnu ikke understøttelse af nedarvning, interfaces og abstrakte metoder og klasser.
Nyt: Man kan nu arbejde med projekter, der bruges til programmer som består af flere enkelt-filer. Alle projekter har en fil: "Main.txt", som kun må indeholde globale sætninger og metoder, mens alle øvrige filer i et projekt kun må indeholder klasser. Når programmet udføres, starter det med at udføre de globale sætninger i "Main.txt".
Nyt: Programming Studio har fået et logo, der består af P og S stiliseret med streger (De mørkeblå streger er P'et, og de lyseblå er de vandrette linier i S). Har man lavet en shortcut til programmet (f.eks. på desktoppen) skal man lave en ny, for at få logo'er opdateret.
0.10.8 — (2010-10-05)
Rettet: Hvis man markerede et område med musen og slettede det mens man holdt musen nede, og dernæst flyttede musen og slettede igen, kunne det få Programming Studio til at gå ned.
0.10.7 — (2010-10-05)
Nyt: String har fået metoderne: String substring( int start ) og String substring( int start, int end ), ud over de allerede eksisterende: int length() og charAt( int index ).
Nyt: Der er tilføjet en global metode: double runtime(), der returnerer hvor lang tid der er gået siden programmets start. Metoden kan bruges til at lave tidsmålinger vedr. programudførelse.
0.10.6 — (2010-09-28)
Rettet: Når man placerede ';' (semi-kolon) efter en sammensat sætning gik oversætteren i uendelig løkke.
Ændret: Når programmet opdateres bliver "Release History" siden (denne side) nu kun åbnet i en browser, når der er tale om nye #.# versioner, og ikke #.#.# versioner. Sidst nævnte er normalt kun fejlrettelser, mens først nævnte har større eller mindre nye features. F.eks. vil denne side næste gang automatisk blive åbnet i en browser når version 0.11 installeres, men ikke hvis der er tale om en evt. version 0.10.7.
0.10.5 — (2010-09-28)

Rettet: Der manglende engelske/danske tekster til et par fejlmeddelelser.

0.10.4 — (2010-09-28)

Rettet: Når den første sætning i en metode var en for-sætning, var evt. parametre ikke tilgængelige efter for-sætningen blev udført.

Rettet: 'boolean' blev ikke syntaksfarvet.

0.10.3 — (2010-09-21)

Rettet: I nogle tilfælde var det muligt for programmet at gå ned hvis man markedere et område nedefra og op, hvor man sluttede markeringen på en tom linie, og dernæst forsøgte at slette det pågældende område.

Rettet: Efter program-udførelsen blev lagt over i en selvstændig tråd (version 0.10), blev det muligt ved udførelse af programmer at få Programming Studio til at gå ned. Dette er ikke længere muligt, og det værste der nu kan ske, er at man får en ikke nærmere specificeret runtime fejl fra ens eget program.
Nyt: Fejlmeddelelse når man glemmer index i array-udtryk (e.g. "println( table[] );").
Nyt: Fejlmeddelelse når man forsøger at erklære en variabel med et navn der allerede er anvendt til erklæring af en anden variabel i samme virkefelt.
Nyt: ";" efter print-metoderne ved code completion.
0.10.2 — (2010-09-20)

Rettet: Ctrl+Shift+HøjrePil markerede ikke tekst.

Rettet: Oversættelse og kørsel af tom kildetekst fik Programming Studio til at gå ned.
Rettet: I nogle tilfælde blev markeringerne af parentes-par lavet så forskellige slags parenteser blev matchet med hinanden (f.eks. ')' med '}') når der var fejl i kildeteksten. De bliver nu altid matchet med en parentes der er modsvarende. Det skal dog bemærkes, at det generelt er et uløseligt problem at matche parenteser hvis der er fejl i kildeteksten; hvorfor algoritmen i nogle tilfælde vil opgive at matche visse parenteser.
0.10.1 — (2010-09-20)

Nyt: Der er kommet flere funktioner i Toolbar'en

Rettet: Pause/Stop-knapperne i toolbar'en var ofte (meget) længe om at opdatere deres tilstande, fordi de blev udsultet af det kørende program.

Rettet: Når code completion automatisk blev slået til, blev den ikke automatisk deaktiveret når man skrev noget der ikke var nogen (af systemet) kendt fortsættelse til.

0.10 — (2010-09-19)

Nyt: Når man udfører et program bliver det nu kørt i en selvstændig tråd (før blev det udført af GUI-tråden). Det betyder at den grafiske bruger-grænseflade har mulighed for at opdatere mens programmet udføres. Tidligere blev udskriften fra et program først vist efter at programmet var termineret. Nu sker det løbende. Det betyder at man nemmere kan se at programmet bliver udført selvom det udskriver det samme som allerede stod i konsollen.

Nyt: Man kan nu stoppe et program, der er under udførelse. Dette kan f.eks. bruges hvis programmet er gået i uendelig løkke. Af samme grund er begrænsingen på hvor lang tid et program kan køre (5 sekunder), og den tilhørende dialogbox, fjernet. Et program der enten er lang tid om at bliver udført, eller er gået i uendelig løkkke, får nu lov til at fortsætte i ubegrænset tid.
Nyt: Man kan nu pause et program, der er under udførelse. Hvis man har et program der over længere tid udskriver mange linier i konsollen, kan man pause programmet og studere det udskrevne - f.eks. for at afgøre om programmet skal stoppes.
Nyt: Der er nu en Toolbar med adgang til en række funktioner.
Nyt: Editoren vil i nogle situationer automatisk foreslå en fortsættelse af f.eks. "p" til "println()" vha. en popup-liste med forskellige muligheder. Man kan bruge piletasterne op/ned til at vælge en indgang i listen og dernæst trykke enter for at få indsat det valgte, eller man kan tilsvarende dobbelt-klikke en indgang i listen. Man kan gennemtvinge at popuplisten bliver vist med Ctrl+Space, men hvis der ikke er nogen forslag, får man listen med alle muligheder, også dem der ikke er en fortsættelse af det man er ved at skrive. At man automatisk for tilbudt fortsættelser kan slås til/fra under "Indstillinger" (indtil videre under "Parenteser")
Nyt: Tekststrengs literaler (e.g. "Hello World!") bliver nu autocompleted mht. anførselstegn. Det kan slås til/fra under Indstillinger (indtil videre under "Parenteser").
Nyt: Ctrl+VenstrePil flytter cursor til start af forrige/nuværende ord, Ctrl+HøjrePil flytter cursor til starten af næste ord, og Ctrl+BackSpace sletter foregående ord/starten af nuværende ord.
0.9.3 — (2010-09-17)
Rettet: I version 0.9.2 var det ikke (længere) muligt at flytte en mappe i oversigten. Fejlmeddeleserne i forbindelse med navnesammenfald er nu også understøttet på engelsk.
0.9.2 — (2010-09-17)
Rettet: Når man rykkede konsol-/fejl-oversigten helt op i toppen af applikations-vinduet gik programmet ned.
Rettet: Når man flyttede en fil fra en mappe til en anden og der i forvejen var en fil eller mappe med samme navn gik programmet ned.
0.9.1 — (2010-09-16)
Rettet: Filer og mapper i oversigten blev ikke sorteret ved programmets start, men først efter at filer blev tilføjet.
Rettet: Programmet accepterede fejlagtigt konstruktioner i stil med: table[].length, der blev fortolket som: table.length. Anvender man konstruktioner af førstnævnte slags, får man nu en fejl ved oversættelsen.
0.9 — (2010-09-15)

Nyt: Filer og mapper i oversigten bliver nu sorteret i alfanumerisk rækkefølge. Det betyder at f.eks.: "Opgave 1.txt", "Opgave 2" og "Opgave 11", ikke længere bliver sorteret i alfabetisk rækkefølge (e.g. "Opgave 1.txt", "Opgave 11", "Opgave 2"), men i den mere "naturlige" rækkefølge: "Opgave 1.txt", "Opgave 2", "Opgave 11".

Nyt: (følgende gør sig gældende for parenteserne: (), [] og {}) Placerer man cursoren ved siden af en parentes vil den og den tilhørende anden parentes blive fremhævet med en gul baggrund. Hvis den tilhørende parentes mangler bliver parentesen markeret med en rød baggrund. (Hvis cursoren placeres mellem to parenteser der står umiddelbart ved siden af hinanden, og disse tilhører hver deres parentes-par, vil dette kun have virkning for den inderste parentes hvis de to parentes-par er inden i hinanden, og hvis de ikke er, vil det kun have virkning for den første parentes). Man kan slå det fra/til under "Indstillinger".
Nyt: Almindelige parenteser (), kantede paranteser [] og krøllede parentser {} bliver nu autocompleted (dvs. at den tilhørende slut-parentes bliver sat når man sætter start-parentesen, og cursoren places mellem dem). Krøllede parenteser blev tidligere kun autocompleted når de blev indsat sidst på en linie. For alle tre parentesers vedkommende kan autocompletion slås fra/til under Indstillinger.
Nyt: I forbindelse med enhver form for autocomplete (f.eks. parentes-par), er dette disabled mens venstre muse-knap er trykket ned. Det gør det muligt at sætte f.eks. "{" uden nogen form for autocomplete. Man skal være opmærksom på at det at trykke venstre muse-knap ned samtidig placerer cursoren, så man skal ikke gøre dette et andet sted end der hvor man vil indsætte det man taster!
Nyt: Shift+Tab uden tekst markeret rykker linien hvor cursoren er placeret en tabulering tilbage.
0.8.1 — (2010-09-13)
Rettet: Hvis man rettede i en kildetekst med røde fejl-markeringer, blev disse ikke fjernet hvis man udelukkende slettede tekst. Hvis disse sletninger bevirkede at de røde markeringer ikke kunne være indenfor kildeteksten gik programmet ned.
0.8 — (2010-09-13)
Nyt: Fejl (også runtime fejl) bliver nu markeret med rød underliniering og rødlig baggrund i kildeteksten. Dette sker efter at man har forsøg at oversætte programmet, eller at køre det selvom det indeholdt fejl. Markeringerne forsvinder når man begynder at rette i kildeteksten. Der kan være en vis unøjagtighed mht. at markere hvor meget eller hvor lidt af kildeteksten der udgør fejlen.
Nyt: Hjælp-menu, med to menupunkter: "Hjemmeside" og "Versions-historik", der åbner to sider på programmet hjemmeside.
0.7.1 — (2010-09-13)
Rettet: Når man slog markering af konstrolstrukturer til/fra fik det ikke virkning for allerede åbnede filer.
Rettet: Ctrl+7 (linie-udkommentering) fik programmet til at gå ned hvis cursoren var placeret på sidste linie og denne var tom.
Rettet: "{" med automatisk indsættelse af "{...}", fik programmet til at gå ned; hvis cursoren var placeret sidst på næstsidste linie, og sidste linie var tom.
Rettet: Når man ændrede på hvilke linier der tilhørte en block-kommentar blev syntak-farvningen ikke opdateret (med det samme).
0.7 — (2010-09-12)

Nyt: Ctrl+7 vil udkommentere den linie cursoren befinder sig på. Hvis en eller flere linier er (helt eller delvist) markeret vil disse linier alle blive udkommenteret med Ctrl+7. Med Ctrl+Shift+7 kan man tilsvarende indkommentere en eller flere linier. Der er i alle tilfælde tale om liniekommentering (e.g. "//...").

Rettet: Markering af diverse kontrol-strukturer fejlede i visse situationer.
Rettet: Markering af hele linier (vha. linie-numrene, se evt. version 0.6) satte afslutningen af den sidste markede linie ét tegn for lagt, hvilket fik programmet til at gå ned hvis man slettede det markerede. Det er nu rettet.
Nyt: Man har hele tiden kunnet navigere rundt i enkletfils-oversigten (når man ellers har haft en mappe eller en fil markeret) med pil op/ned, pil til højre (åbner mappe) og pil til venstre (lukker mappe). Dette er en del af standard funktionaliten af de TreeVieItems der er brugt til at implementere det. Det er nu også muligt at åbne en fil ved at trykke enter når den er markeret i oversigten.
0.6 — (2010-09-10)
Nyt: Hvis et index er enten negativt eller for stort, vil programmet stoppe og meddele at det ikke kan fortsætte. Samtidig vil fejlen blive markeret i Fejl-listen. Det samme vil ske ved division med 0.
Nyt: Der er kommet en "Browse"-knap under Indstillinger; hvor man sætter stien til enkeltfils-directoriet. Hvis man retter manuelt i tekstfeltet vil den få en rød baggrund hvis stien til det pågældende directory ikke findes, og en sådan sti vil ikke blive anvendt.
Rettet: Undo kunne i nogle situationer fjerne syntaks-farvningen fra en linie, dette er nu rettet.
Nyt: Mouse cursoren er nu en IBeam når den er over kildeteksten.
Nyt: Man kan nu markere hele linier i kildeteksten ved at trykke på linie-numrene. Man kan markere flere linier ved at trykke og trække musen hen over en række af linie-numre.