Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Patch TIGCC IDE (46 réponse(s))
./REPRISE DU POST PRECEDENT (post n°38)   Marquer comme non lu.
Ephyx Ecrit le: Mercredi 21 juillet 2004 à 18:15 Déconnecté(e)    Voir le profil de Ephyx Envoyer un email à Ephyx Visiter le site WEB de Ephyx Envoyer un message privé à Ephyx  


Sinon donc les fonctions attendues:




Dans le moteur:

- support simple des instructions preprocesseurs: #include et #define
(analyse egalement des #ifdef #else #endif ?)
- parcours des headers du projet + ceux inclus
- liste de toutes les déclarations, fonctions, variables, typedef, struct, union, enum, ...
- support des membres des structures et unions.
- le tout rapidement (cache des headers parsées)
- analyse de l'expression courrante, avec: (c pa du gato #mur# #triso#)
analyse des opérateurs: typecast (), &* referencement & dereferencement, accès aux champs . ->




Partie visuelle:
- liste déroulante de proposition
- template simple de code
- hint pour les fonctions reconnues (%))
Lemuria & Sirius-B, chouette :D
    
./Post n°39   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 27 juillet 2004 à 05:12 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Je comprends que tu veuilles rajouter plein de nouveautés, et j'attends avec impatience ces nouveautés (pour TIGCC 0.96...), mais pourrais-tu s'il te plaît corriger la version actuelle d'abord (cf. appui sur "(" qui ne marche pas du tout chez moi et bogue grave chez Vertyos) pour qu'on puisse sortir la 0.95 finale avec une complétion qui fonctionne?
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°40   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 27 juillet 2004 à 05:45 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Et tiens, les templates de code se comportent mal si la liste des templates est vide. Cf. ce bug report de Fisch2:
I noticed something strange with the 'CTRL + J' template addition. When I press that, a message box pops up and says "To add templates, go to Preferences->Extension". What might be a glitch, is that a blank, white box with a black border also pops up to the upper-right of the message box for apparently no reason. If my description is unclear, I could mail you a screenshot. Also, there is no Extension tab in the Preferences menu. What I think it's talking about is the 'coding' tab.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°41   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 29 juillet 2004 à 15:46 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


<Kevin_Kofler> Bon, je vois pourquoi la complétion avec "(" foire totalement...
<Kevin_Kofler> Il teste la touche "5"!!!
<Kevin_Kofler> C'est peut-être la touche "(" sur les claviers AZERTY, mais sur les claviers AZERTY seulement.
<Kevin_Kofler> C'est faux partout ailleurs.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°42   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 29 juillet 2004 à 16:18 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Voilà comment obtenir la combinaison VirtKey + Shift correspondant au layout de clavier: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/KeyboardInput/KeyboardInputReference/KeyboardInputFunctions/VkKeyScan.asp. Toute utilisation de valeurs numériques pour des numéros de caractères est un bogue grave. Ce n'est pas parce que monsieur Ephyx a un clavier AZERTY que c'est le cas de tout le monde!
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°43   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 29 juillet 2004 à 17:44 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Bon, apparemment ça ne sert à rien de garder ce topic ouvert vu que je parle dans le vide profond! #rage# Topic fermé!
-Edité le Jeudi 29 juillet 2004 à 17:45 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°44   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 31 juillet 2004 à 01:48 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Je réouvre, parce que j'ai un patch à poster. Repost de mon message sur TICT HQ:

This is my completely untested (I don't even know if it compiles) attempt at fixing the template-related bugs:
diff -ur CodeCompletion.old/CompletionForm.pas CodeCompletion/CompletionForm.pas
--- CodeCompletion.old/CompletionForm.pas        Sun Jul 25 15:07:24 2004
+++ CodeCompletion/CompletionForm.pas        Sat Jul 31 01:44:28 2004
@@ -9,6 +9,7 @@
 
 const
         SymbolFileNotFound = 'Symbol %s is declared in %s, but file can''t be found!';
+        AddTemplatesMsg = 'To add templates, go to Preferences->Coding';
 
 type
         TCompForm = class(TForm)
@@ -563,7 +564,10 @@
         begin
                 Key := 0;
                 StopKey := True;
-                TemplateForm.Show;
+                if TemplateForm.Templates.Count = 0 then
+                        ShowMessage(AddTemplatesMsg)
+                else
+                        TemplateForm.Show;
         end
         else if (Key = $35) and not IsWindowVisible(HintWindow.Handle) then
                 ShowSymbolInfo
diff -ur CodeCompletion.old/TmpltForm.pas CodeCompletion/TmpltForm.pas
--- CodeCompletion.old/TmpltForm.pas        Sun Jul 18 12:09:06 2004
+++ CodeCompletion/TmpltForm.pas        Sat Jul 31 01:41:10 2004
@@ -6,10 +6,6 @@
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, MemoComponentUnit;
 
-const
-  WM_FORCEHIDE = WM_APP + $10;
-  AddTemplatesMsg = 'To add templates, go to Preferences->Extension';
-
 type
   TTemplate = class(TObject)
   public
@@ -32,7 +28,6 @@
     { Déclarations publiques }
     Templates: TStringList;
     procedure Select;
-    procedure WMForcehide(var Message: TMessage); message WM_FORCEHIDE;
   end;
 
 var
@@ -190,11 +185,6 @@
   P: TPoint;
 begin
   TmpltList.Count := Templates.Count;
-  if Templates.Count = 0 then
-  begin
-    ShowMessage(AddTemplatesMsg);
-    PostMessage(Handle, WM_FORCEHIDE, 0, 0);
-  end;
   M := CompForm.Editor;
   if Assigned(M) then
   begin
@@ -203,11 +193,6 @@
     Left := P.X + 4;
     Top := P.Y + 20;
   end;
-end;
-
-procedure TTemplateForm.WMForcehide(var Message: TMessage);
-begin
-  Hide;
 end;
 
 end.


But the more serious parentheses-completion bugs still need to be fixed!

[EDIT: Oops, I forgot to change the actual message.]
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°45   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 31 juillet 2004 à 02:26 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


And this one (again: completely untested, may or may not compile) should fix the localization issues:
diff -ur CodeCompletion.old2/CompletionForm.pas CodeCompletion/CompletionForm.pas
--- CodeCompletion.old2/CompletionForm.pas  Sat Jul 31 01:51:48 2004
+++ CodeCompletion/CompletionForm.pas  Sat Jul 31 02:27:28 2004
@@ -523,12 +523,25 @@
       CompList.ItemIndex := i;
   end;
 var
-  NewKey: Word;
+  NewKey, VkLeftParen, VkRightParen: Word;
+  LeftParenShift, RightParenShift: TShiftState;
 begin
   if Assigned(OldKeyDown) then
     OldKeyDown(Sender, Key, Shift);
   if Visible then
   begin
+    VkLeftParen := VkKeyScan('(');
+    LeftParenShift:=[];
+    if Hi(VkLeftParen) and 1 <> 0 then Include(LeftParenShift, ssShift);
+    if Hi(VkLeftParen) and 2 <> 0 then Include(LeftParenShift, ssCtrl);
+    if Hi(VkLeftParen) and 4 <> 0 then Include(LeftParenShift, ssAlt);
+    VkLeftParen := Lo(VkLeftParen);
+    VkRightParen := VkKeyScan(')');
+    RightParenShift:=[];
+    if Hi(VkRightParen) and 1 <> 0 then Include(RightParenShift, ssShift);
+    if Hi(VkRightParen) and 2 <> 0 then Include(RightParenShift, ssCtrl);
+    if Hi(VkRightParen) and 4 <> 0 then Include(RightParenShift, ssAlt);
+    VkRightParen := Lo(VkRightParen);
     NewKey := 0;
     case Key of
       VK_ESCAPE: Close;
@@ -548,7 +561,8 @@
           Editor_Change(Sender);
           NewKey := Key;
         end;
-      $35: ShowSymbolInfo()
+    else if (Shift = LeftParenShift) and (Key = VkLeftParen) then
+      ShowSymbolInfo()
     else
       NewKey := Key;
     end;
@@ -569,9 +583,11 @@
     else
       TemplateForm.Show;
   end
-  else if (Key = $35) and not IsWindowVisible(HintWindow.Handle) then
+  else if (Shift = LeftParenShift) and (Key = VkLeftParen)
+          and not IsWindowVisible(HintWindow.Handle) then
     ShowSymbolInfo
-  else if (Key in [$DB, VK_BACK, VK_ESCAPE]) then // or not (Key in [Ord('A')..Ord('Z'), Ord('0')..Ord('9')
+  else if ((Shift = RightParenShift) and (Key = VkRightParen))
+          or (Key in [VK_BACK, VK_ESCAPE]) then
     CloseSymbolInfo;
 end;

Now someone needs to fix up the "Similarity" and "Similar" functions nested in TCompForm.ShowSymbolInfo to do less fuzzy matches (I want exact matches of the function name), and (assuming my fixes actually work) the code completion would be saved from forced removal.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°46   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 31 juillet 2004 à 02:50 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Actually, the Similarity stuff isn't really a bug (even though Vertyos made it look like one), it is intended to be helpful (it suggests the correct function name if you make a typo). Disabling it is as easy as deleting or commenting out the following lines:
                else if (i >= 0) and (i < List.Count) then
                begin
                        if i = 0 then
                        begin
                                if Similar(Symbol, List[ i ]) then
                                        T := List[ i ] + ' ?'#13#10
                                else
                                        Exit;
                        end
                        else
                        begin
                                if Similarity(Symbol, List[i - 1]) > Similarity(Symbol, List[ i ]) then
                                        Dec(i);
                                if Similar(Symbol, List[ i ]) then
                                        T := List[ i ] + ' ?'#13#10
                                else
                                        Exit;
                        end;
                end

But I'm not sure this is a good idea. What probably would be a good idea though is to make the check stricter. Currently, it only requires half of the characters to match (Result := Similarity(A, B) < (l shr 1);), and it only compares as much characters as in the smaller string, the lengths may greatly differ (so it suggests "FOP_ALL_FOLDERS" if you type "foo"). But I'd say this should not block any release, so I hereby drop my proposal to disable the completion for 0.95 final, assuming my patches work and get applied and assuming there won't be other serious bug reports. Yes, this means completion will most likely go into TIGCC 0.95 final. Hooray!

[EDIT: Deleting that passage probably won't cut it, you need to replace it with something like if Symbol <> List[ i ] then Exit; if that's what you want.]

---

Bref, je dirais que tout est au mieux. :)

Et Vertyos, si la suggestion de noms semblables te dérange vraiment, tu sais maintenant quel morceau de code mettre en commentaire (c'est dans TCompForm.ShowSymbolInfo dans CompletionForm.pas). :)
-Edité le Samedi 31 juillet 2004 à 02:53 par Kevin Kofler-
-Edité le Samedi 31 juillet 2004 à 03:40 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » Forum Ti68K » Programmation C » Patch TIGCC IDE (46 réponse(s))
Pages : 3/3     « 1 2 [3] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 92.63ms avec 18 requetes