Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Wie findest du das Projekt? |
Gut |
|
86% |
[ 19 ] |
Schlecht |
|
0% |
[ 0 ] |
Interessiert mich nicht! |
|
13% |
[ 3 ] |
|
Stimmen insgesamt : 22 |
|
Autor |
Nachricht |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 25.12.2009, 22:11 Titel: |
|
|
Es wäre ebenso auch noch sinnvoll, wenn in der Vervollständigungsliste nicht nur aus einem Wort je Vorschlag bestehen würde, sondern z.B. mit Symbolen der Typ gekennzeichnet würde [z.B. Integer, String, .. oder Function, Sub (bei letzeren zweien sollten auch die Parameter inkl. Parameterdatentypen angezeigt werden), usw. usf.].
Jedenfalls toll, dass es auch eine Auto-Vervollständigung gibt. Besonders bei Type's käme ich da in größeren Projekten ohne diese Funktion nicht mehr aus.
Ich hätte zwar erhofft, dass du nicht nur in bestimmten Situationen auf Vervollständigungsvorschläge überprüfst (weil genau das kann ja FBedit schon lange), sondern den kompletten Quellcode analysierst, aber fürs erste vollkommen ok. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 25.12.2009, 22:20 Titel: |
|
|
Das wäre schön, aber der erste Schritt ist zuerst so einfaches Zeug.
Aber man wird sehen wie weit ich das ausbauen kann.  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 29.12.2009, 16:32 Titel: |
|
|
Ich stehe gerade vor einem unerwartetem Problem, vielleicht fällt einem von euch ja eine Lösung ein.
Also die Ausgangssituation ist, das alle Funktionen mit Parameterliste indexiert werden, auch die Memberfunktionen von Types.
Jetzt hab ich so einen Code Teil:
Code: | dim temp as typename
temp. |
Was jetzt passiert ist klar, alle Member werden aufgelistet.
Jetzt wird es aber schwerer:
Code: | type a
as integer i
end type
type b
declare function getA () as a
end type
dim temp as b
b.getA(). |
Jetzt sollte eine Liste angeboten werden in der i zur Auswahl steht.
Das griege ich gerade noch so hin.
Jetzt wird es aber noch schwerer:
Code: |
type type1
as integer i
end type
type type2
as integer i
end type
type type3
as integer i
end type
type type4
declare function get (byval t as type1) as type1
declare function get (byval t as type2) as type2
declare function get (byval t as type3) as type3
end type
dim as type2 t2
dim as type4 t4
t4.get(t2).
|
in der Liste die einem Angeboten wird sollte jetzt i stehen.
Wären das jetzt komplett unterschiedliche Types müsste man ja erstmal herrausfinden welche überladene Funktion gemeint ist.
In diesem Beispiel ist das noch leicht, aber was wenn die zeile sehr verschachtelt ist:
Code: |
dim as type2 t2
dim as type4 t4
dim as type3 t3
t4.get(t4.get(t3)). |
Jetzt müsst man die ganzen Schritte die man braucht um auf die richtige Funktion zu kommen auch auf die einzelnen Parameter anwenden.
Die könnten wieder so verschachtelt sein.
Ich würde das rekursiv machen aber wie man gesehen hat ist das alles ziemlich verwirrend.
Vielleicht fällt ja jemandem hier etwas besseres ein, ich weis nichtmal ob es anders geht. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 29.12.2009, 17:47 Titel: |
|
|
Ich verstehe dein Problem, weiß keine Lösung, zumindest momentan nicht und wollte eigentlich nur anmerken, dass FBEdit damit auch rein gar nicht umgehen kann.  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 29.12.2009, 18:25 Titel: |
|
|
<Schadenfreude>
Dann ist das ja fürs erste nicht so schlimm
</Schadenfreude>
Dann muss ich das wohl rekursiv machen, auch wenns sicher total verwirrend wird. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 29.12.2009, 19:20 Titel: |
|
|
Ich kann mir nicht vorstellen, dass es anders als rekursiv funktioniert.
Gibt es eigentlich eine aktuelle Linux-taugliche Version? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 29.12.2009, 20:03 Titel: |
|
|
Ich sitz gerade daran, heute im Laufe des Abends gibts ne aktuelle Version. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 29.12.2009, 21:44 Titel: |
|
|
Hier gibts die aktuelle Version für Linux:
http://users.freebasic-portal.de/stueber/Linux/ide_a11.tar.gz
Um sie starten zu können muss libqt-core, libqt-gui und libqt-webkit in Version 4.6 installiert sein (Version ist wichtig!).
Es ist die 64-Bit Version, der Quelltext für eine 32-Bit Version liegt bei (habe ich aber noch nicht getestet).
Die IDE hat bei mir (Ubuntu 9.10 x64) funktioniert.
Es ist die aktuellste Version und besonders die Vervollständigung enthält noch Fehler, aber davon abgesehen tut alles.
Bei Dateien ohne Projekt stürtzt die IDE nach "dim as " ab, das passiert nicht bei Projekten.
Der Designer gibt bisher nur Winapi aus, bald auch GTK aber bis dahin ist er nur zur demonstation geeignet. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 30.12.2009, 00:16 Titel: |
|
|
MOD hat Folgendes geschrieben: | [...] wollte eigentlich nur anmerken, dass FBEdit damit auch rein gar nicht umgehen kann.  |
FBedit schlägt sich dabei ganz gut.
Die beiden ersteren machen keine Probleme.
Funktionsüberladungen ignoriert es jedoch. (d.h. beim 3. wird immer i vorgeschlagen, auch wenn in den anderen types die variable anders hieße
______________
Die Linux Version werd ich bei Gelegenheit in Sidux ausprobieren.
Hab mein Linux aber inzwischen schon über ein halbes Jahr nicht gestartet und da muss ich höchstwahrscheinlich vorher noch ein halbes Gigabyte Updates herunterladen und installieren, bis wieder alles aktuell ist - und das dauert bei meiner langsamen Internetverbindung ewig. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 30.12.2009, 00:20 Titel: |
|
|
Die ersten drei bekomm ich auch hin, nur das vierte wird Probleme machen, aber ich hab da schon Pläne.
Wollte ja auch nur wissen obs auch leichter geht als mit meinen Plänen. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 30.12.2009, 00:22 Titel: |
|
|
Wenn mir jemand eine 32-Bit-Version erstellen könnte, dann teste ich auch mal. Meine qt-Libs sind eine etwas ältere Version, und ich mag da jetzt nicht in den Paketquellen herumfuhrwerken.
Ach ja, leg doch bei Gelegenheit zum Quelltext eine Compilier-Anweisung bei. Ich weiß inzwischen, wie es geht, aber dazu habe ich nochmal diesen Thread durchforsten müssen.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 30.12.2009, 00:34 Titel: |
|
|
Gut mach ich.
Wenn du es dir selber kompilieren willst kannst du wenn keine Pakete verfügbar sind das SDK installieren. (ist aber sehr groß, >200mb)
Ich schau mal ob ichs in einer virtuellen Maschine hinbekomm. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 03.01.2010, 23:48 Titel: |
|
|
Kurze Statusinfo:
Das vervollständigen bei Datentypen das bei der Linux Version schon dabei war, was noch ziemlich verbuggt. Das wurde sehr viel verbessert, ich bin damit erstmal zufrieden.
Neue Features:
Wenn man so einen Code hat
Code: | line (0,0)-(100,100),rgb(255,0,0), |
und man weis nicht mehr welche Parameter noch nach der Farbe kommen, kann man den Cursor in line setzen und F1 drücken.
Darauf hin öffnet sich der Referenz Eintrag von line.
Das Funktioniert mit allen FB-Schlüsselwörtern, Konstanten, Funktionen und sonstigem.
Planung:
- Goto-Dialog
- Vervollständigung bei Types
- Ein einfaches Dokumentations-Werkzeug dessen Inhalt dann auch mit der F1 Taste verknüpft wird. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 05.01.2010, 00:04 Titel: |
|
|
Stueber hat Folgendes geschrieben: |
Planung:
- Goto-Dialog
|
Goto? Gehe zu zeile xzy oder wie? _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 05.01.2010, 00:28 Titel: |
|
|
Unter anderem, aber auch gehe zu Dekleration oder Definition. |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 12.01.2010, 20:06 Titel: |
|
|
Falls das Projekt noch aktuell ist, hier meine Wunschzettel-Ergänzung:
Thema: Syntax-Highlighting
Neben den üblichen Verdächtigten könnte auch Folgendes separat erkannt werden:
- Variablen in Abhängigkeit vom Gültigkeitsbereich. Soviel ich weiß ist folgendes möglich:
- Lokal (DIM)
- Lokal Parameter (BYVAL)
- Lokal Parameter Erweitert (BYREF)
- Global (DIM SHARED im Modulebenen-Code
- Global Erweitert (COMMON SHARED im Modulebenen-Code von mindestens 2 Modulen)
- Konstanten
- Unterprogramme (Sub’s, Funktionen)
- Vom Benutzer definierte Zeichenketten. Doch dieses Feature könnte man auch in die Suchfunktion integrieren. (Auswahl: Alle Markieren)
Thema: automatische Codeergänzung
- Der Anwender sollte „Kurzbezeichnungen“ (auf Deutsch: „shortcuts“) definieren können. Beispielsweise kann "pr“ nach der Betätigung der Leertaste zu „PRINT“ werden. Jede Textverarbeitung hat so ein Feature.
- Bei der Verwendung einer undeklarierten Variablen könnte die IDE sofort eine Warnung ausgeben (und eventuell einen Vorschlag zu Dimensionierung unterbreiten.)
- Hinter „END SUB/FUNCTION“ könnte automatisch eine benutzerdefinierte Kommentarzeile eingefügt werden, die auch den Namen der Sub enthalten kann. Dadurch wird die Lesbarkeit des Listings erhöht.
Und wem das alles nicht passt: Einfach die „unnötigen“ Features ignorieren! |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 12.01.2010, 20:54 Titel: |
|
|
Meine Version die ich noch nicht hochgeladen habe kann schon Variablen, Konstanten, Datentypen und Subs bzw. Funktionen filtern, nur bin ich gerade viel mit Schule beschäftigt und will die nächste Version erst hochladen wenn sich deutlich was getan hat.
Das was modd FB-PRO genannt hat verfolge ich gerade, es wird aus der IDE und zwei anderen Komponenten bestehen von denen sich gerade eins im geschlossenen Test befindet und das zweite noch vollkommen "geheim" ist. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 16.01.2010, 15:43 Titel: Vererbung |
|
|
Ich hab mir was neues überlegt zur Vererbung und wollte mal wissen was ihr davon haltet:
Bisher wurde ja aus diesem Quelltext
Code: | type a
i as integer
declare sub p()
end type
sub a.p ()
print i
end sub
type b : extends a
i2 as integer
end type |
dieser
Code: | type a
i as integer
declare sub p()
end type
sub a.p ()
print i
end sub
type b
i2 as integer
i as integer
declare sub p()
end type
sub b.p ()
print i
end sub |
Wie man sieht ist die Funktion p() am Ende zwei mal im Quelltext.
Jetzt war meine Idee so:
Aus dem ersten Code weiter oben wird
Code: | type a
i as integer
declare sub p()
end type
sub a.p ()
print i
end sub
type b
parent as a
i2 as integer
declare property i () as integer
declare property i (byval new_i as integer)
declare sub p()
end type
sub b.p ()
parent.p()
end sub
property b.i() as integer
return parent.i
end property
property b.i(byval new_i as integer)
parent.i = new_i
end property |
Auf den ersten Blick ist das mehr Quelltext aber die Funktion a.p() ist jetzt nur einmal wirklich im späteren Programm. Wäre a.p() eine große Funktion wäre der untere Quelltext viel kürzer als der obere.
So wird die Zeit die FreeBASIC braucht, um das Programm zu kompilieren, kaum verlängert und das Ergebniss ist das gleiche.
Auf jedenfall weniger Pseudo-Vererbung als die bisherige Idee.
Was haltet ihr davon? |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 18.01.2010, 23:10 Titel: |
|
|
Auf Vorschlag von Stüber poste ich hier weiter. Für die, welche nicht im Bilde sind: Meine Frage war, wieso Deklarationen (für Funktionen) nicht automatisch von der IDE erzeugt werden. Aktuell benutze ich FBide. Und die kann so was nicht (oder ich war bisher zu blöd um das rauszufinden).
Meine alte „Programmierumgebung“ von VBDOS kann so was (und noch ein paar Dinge mehr, z.B. eine Hilfe für Symbole) |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 18.01.2010, 23:20 Titel: |
|
|
Ich könnte mit wenig Aufwand einbauen, dass zu jedem Projekt ein Header hinzugefügt wird, den man nicht manuell bearbeiten kann. In diesen Header könnte die IDE dann alle Deklerationen schreiben, und sie ändern falls im Quelltext was geändert wird. Danach bindet man diesen Header einfach überall ein, eventuell auch automatisch, und schon wärs gemacht. |
|
Nach oben |
|
 |
|