TextMacros

2»

Réponses

  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #32
    Edit du post précédent : rajout de choses à  faire pour une v1.2 aussi.

    (PS : Dans le ZIP posté, j'ai oublié un [tt][children release][/tt] dans le dealloc de LanguagesController... Merci Clang ;) Bon j'ai pas reposté le ZIP juste pour ça hein)
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #33
    Qqun a avancé sur le projet ? Personne ?
    J'ai commencé un projet lundi qui va me prendre au minimum un mois, et en dehors de ça je suis assez pris... donc pour l'instant de mon coté toujours a point mort, et ce pendant encore pas mal de temps, donc tjs pas avancé... Philippe ?
  • Philippe49Philippe49 Membre
    23:57 modifié #34
    J'étais dans des applis de démo pour mes cours, mais bon c'est fait. Je vais donc pouvoir y regarder ce week-end ... entre le Barbecue et ce qui va avec !  <3
  • Philippe49Philippe49 Membre
    23:57 modifié #35
    Oui bon le barbecue aujourd'hui. J'ai parcouru ton appli, pourquoi ne pas utiliser CoreData ici  (glue code)
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #36
    Heu tiens pas bête... bah parce que (1) j'y ai pas pensé... et (2) j'ai jamais utilisé CoreData (et l'ai même un peu oublié depuis que je programme pour iPhone) et ne connais pas trop ses subtilités... Donc je risquerai presque de perdre du temps à  l'utiliser dans le sens où faut déjà  que je le découvre... :D
  • Philippe49Philippe49 Membre
    23:57 modifié #37
    En même temps Core Data arrive sur iPhone avec 3.0
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #38
    ???
  • Philippe49Philippe49 Membre
    23:57 modifié #39
    J'ai dit une bêtise ?
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #40
    Bah heu j'en sais fichtre rien, mais perso c'est la première fois que j'entend parler que CoreData sera dans l'OS 3.0... mais ça veut rien dire car j'ai pas eu le temps d'explorer vraiment le SDK 3.0 et j'ai très bien pu passer à  côté de l'info...
  • Philippe49Philippe49 Membre
    mai 2009 modifié #41
    Je ne sais plus pourquoi j'ai cela en tête, il me semble l'avoir capté lors de la présentation du OS 3. Je vais fouiller, mais effectivement, CoreData sur Mac demande le KVO, et en général les bindings ... à  voir
  • Philippe49Philippe49 Membre
    mai 2009 modifié #42
    Oui, oui il y a bien le framework Core Data dans l'OS 3.0. Le KVO implémenté, mais je ne vois pas le matériel comme arrayController ...
  • 6ix6ix Membre
    23:57 modifié #43
    J'ai découvert il y a peu les text macros qui sont effectivement très utiles, et j'ai donc suivi avec intérêt votre post !

    Comme vous parlez de créer une application pour gérer ces macros - ce qui est d'ailleurs une très bonne idée ! -, je peux vous conseiller de jeter un oeil ici, si ce n'est pas déjà  le cas, notamment donc à  l'application Autopilot et son module Xcode macros.


    Et j'en profite pour vous poser une petite question: savez-vous s'il est possible de modifier les macros de base (et s'ils ne sont pas écrasés à  chaque mise à  jour) ?
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #44
    Ouh tu fais bien de déterrer ce post je l'avais un peu oublié...

    Bon ceci dit c'est toujours autant la noyade ici, 2 projets en parallèle et pas une minute à  moi, donc je ne vais certainement pas me rajouter l'objectif de terminer cette appli de sitôt. Cet été peut-être (juillet-août ?) si ça se calme ?
    (Remarquez je me plains pas, au moins j'ai du taf :P)

    Pas le temps de télécharger les applis que tu as mis en lien pour voir exactement de quoi il retourne, ceci dit la première imporession que me donne "Autopilot XcodeMacros" c'est que c'est une appli autonôme pour piloter Xcode, mais je ne suis pas persuadé que ça fasse usage des TextMacros pour autant (je me demande si c'est pas plutôt des scripts ou de l'AppleScript ou quoi ?) Enfin à  creuser à  l'occasion en effet, merci.


    Sinon pour ta question, rien de plus simple :
    1) Les TextMacros par défaut sont dans le bundle de l'appli Xcode elle-même (ou dans le plugin XcodeEdit.plugin je sais plus, enfin par là  quoi). Tu peux aller y jeter un oeil justement ça permet de voir en gros à  quoi ressemble un fichier xctxtmacro.
    2) Cependant je te déconseille de les modifier, d'une part parce que modifier le bundle de Xcode toi-même c'est pas la solution que je trouve la plus propre, mais en plus elle seront effacées à  chaque mise à  jour, comme tu le fais remarquer
    3) Par contre rien ne t'empêche de les "surcharger". Xcode charge les TextMacros dans un ordre un peu similaire aux principes de chargements des autres types de ressources dans les domaines "système", "machine" et "user", il va les charger dans un ordre donné, et les dernières trouvées sont plus prioritaires que les premières.
    Autrement dit, il va charger les txtmacros qui sont dans le bundle de Xcode d'abord, puis celles que tu as définies dans ".../Application Support/.../Specifications/.../", et si dans ces dernières tu utilises un identifier pour une txtmacro qui était déjà  utilisée, cela va la remplacer.

    Donc il suffit de définir un fichier xctxtmacro perso en réutilisant les identifiers des xctxtmacros par défaut que tu veux remplacer, et de garder ça bien au chaud dans Application Support qui lui ne sera pas écrasé lors d'une mise à  jour de Xcode.
  • 6ix6ix Membre
    23:57 modifié #45
    Merci pour ces explications ! Effectivement j'espérais justement qu'il y ait un moyen de " surcharger " les macros de base de manière propre, je vais donc regarder tout ça.

    dans 1245194918:
    Pas le temps de télécharger les applis que tu as mis en lien pour voir exactement de quoi il retourne, ceci dit la première imporession que me donne "Autopilot XcodeMacros" c'est que c'est une appli autonôme pour piloter Xcode, mais je ne suis pas persuadé que ça fasse usage des TextMacros pour autant (je me demande si c'est pas plutôt des scripts ou de l'AppleScript ou quoi ?) Enfin à  creuser à  l'occasion en effet, merci.


    Je n'ai pas cherché à  aller très loin avec Autopilot, mais il s'agit en gros de pouvoir définir toutes sortes de " commandes " au travers de raccourcis. Le module XcodeMacros permet de traiter des commandes uniquement lorsque l'on se trouve dans Xcode, et donc notamment d'assigner toutes sortes de macros à  différents raccourcis.

    J'ai testé et ça marche très bien, par contre si le but est uniquement d'utiliser cette appli pour Xcode, cela fait à  mon avis un peu doublon avec la possibilité de définir soi-même des macros, avec le désavantage qu'il s'agit d'une appli de plus qui tourne en fond.

    Le logiciel n'est donc pas directement une façon de créer de vrais text macros pour xcode, mais reste très intéressant.
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #46
    Ok, bien ce que j'avais cru comprendre. Donc intérêt limité dans le cadre d développement de TextMacros qui nous intéresse ici...
  • Philippe49Philippe49 Membre
    août 2009 modifié #47
    :o :o  C'est vraiment extra ce truc des text macros !  :o :o

    On fait un truc, on se dit cela va resservir souvent , pof ==> on fait une macro
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #48
    Pas con du tout le coup de mettre le dossier Specifications dans l'Organizer ! :)
    Bon par contre j'ai plus jamais retouché à  mon petit soft qui avait pour but de les organiser (avec l'avantage de présenter facilement les clés et les valeurs possibles de ces clés, avec la structure hiérarchique des TextMacros...) mais je me demande si ça sera utile... Vraiment plus le temps de m'y attarder, dommage...
  • Philippe49Philippe49 Membre
    23:57 modifié #49
    dans 1250254988:

    Pas con du tout le coup de mettre le dossier Specifications dans l'Organizer ! :)

    Oui mais c'est moins simple qu'il m'a semblé au premier abord. Quand j'ai relancé XCode j'ai eu le droit à  une Internal Error, le format plist étant l'ancien format dans ces fichiers. Du coup, pour que cela fonctionne, il faudrait faire le pont entre les deux ...
  • 6ix6ix Membre
    23:57 modifié #50
    Pour ma part j'ai créé plusieurs fichiers persos de textmacros, certains à  neuf, d'autres modifiant certains macros d'Apple, mais ils n'apparaissent pas (ou ne remplacent pas ceux de base); ils sont pourtant bien dans le dossier ~/Library/Application Support/Developer/Shared/Xcode/Specifications...  >:(
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #51
    Et que te dit la console ? Qu'il a essayé de les charger mais qu'il n'a pas réussi à  les lire ? Ou bien il ne te dit rien ?
    Tu as bien entendu quitté et relancé Xcode ?
    Tu as créer tes fichiers .txtmacros comment ? Avec un éditeur de texte ? (Si tu as utilisé TextEdit, vérifie que tu n'as pas enregistré le fichier en RTF mais bien en plain-text) Avec Property List Editor (et dans ce cas dans quel format) ?
  • 6ix6ix Membre
    23:57 modifié #52
    dans 1250273332:

    Et que te dit la console ? Qu'il a essayé de les charger mais qu'il n'a pas réussi à  les lire ? Ou bien il ne te dit rien ?
    Tu as bien entendu quitté et relancé Xcode ?
    Tu as créer tes fichiers .txtmacros comment ? Avec un éditeur de texte ? (Si tu as utilisé TextEdit, vérifie que tu n'as pas enregistré le fichier en RTF mais bien en plain-text) Avec Property List Editor (et dans ce cas dans quel format) ?


    Cela fait un moment que je les avais fait, et ça ne marchait pas sans que je me sois replongé sur le problème. Donc oui, de nombreux lancements d'Xcode depuis, sans changer le résultat.


    Au lancement d'un projet, la console m'affiche plusieurs messages Xcode(1317,0xb0103000) malloc: free_garbage: garbage ptr = 0x2f28e40, has non-zero refcount = 1 , mais je ne vois pas trop le lien avec les textmacros.

    Je vois maintenant que le nouveau fichier que j'ai crée (nommé iPhone) fonctionne; c'est la surcharge du fichier ObjectiveC.xctxtmacro qui ne va pas. Je me suis basé sur le même fichier d'Apple, en ne mettant que certains macros modifiés et d'autres créées par moi-même. Mais ces changements ne sont pas pris en compte...

    Peut-être une faute à  qque part qui empêcherait le chargement de tout le fichier ? J'essaierai un à  un pour moi... Ou alors faut-il inclure tous les macros du fichier d'Apple ??
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #53
    A ma connaissance non tu peux ne surcharger que les TextMacros d'Apple que tu veux sans avoir à  les remettre toutes. Sauf que pour ma part je ne crois pas en avoir surchargé une seule, j'ai juste ajouté les miennes, donc en même temps j'ai pas trop testé ce cas de figure.

    Pour les [tt]malloc: free_garbage: garbage ptr = 0x2f28e40, has non-zero refcount = 1[/tt] c'est un bug (enfin warning) connu de Xcode qui n'a rien à  voir avec les TextMacros, c'est un pb dans le GC (utilisé par l'application Xcode elle-même) qui n'a encore jamais été résolu mais n'est pas bien grave... à  part qu'il pollue nos consoles pour rien. Pour ma part j'ai appliqué Ce patch QuietXcode qui permet de supprimer ces warnings inutiles envoyés par Xcode lui-même pour éviter de polluer ma console. Mais bon aucun rapport avec les TextMacros.
  • 6ix6ix Membre
    août 2009 modifié #54
    Ca c'est de la réponse rapide !  ::)

    Merci pour le patch, je vais l'installer. Et donc revoir mon fichier de macros pas à  pas...

    [EDIT] C'est en ordre ! Finalement, le problème venait du fait que j'avais un macro pour créer [[qqch alloc] init], dont le raccourci était " [ "; cela bloquait le chargement du fichier, j'ai donc utilisé autre chose et tout fonctionne.
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #55
    Depuis que je suis passé à  Xcode 3.2, mes TextMacros personnalisées fonctionnent toujours, il les charge bien puisque je les vois listées dans le menu "Edit > Insert Text Macro"... Mais par contre la complétion dans le code ne marche plus... (mais uniquement pour mes custom TextMacros à  moi)

    Par exemple j'avais une TextMacro qui, quand on tapait "todo", me proposait d'insérer un [tt]NSLog(@Method %@ of %@ not implemented yet.",NSStringWithSelector(_cmd),[self class]); // TODO: To be implemeted);[/tt]. Bah maintenant, si je tape "todo" dans mon code, il ne me propose plus d'insérer ça. Alors que si je vais par le menu "Insert Text Macro" ça me l'insère bien...

    Ca vous fait ça aussi, ou ça marche chez vous (si vous avez créé et personnalisé des TextMacros à  vous) ?
  • 6ix6ix Membre
    23:57 modifié #56
    Pareil chez moi, ça ne fonctionne plus, à  moins de passer par le menu !  >:(

    Et même plus étrange: selon où se trouve le curseur dans le code, certains macros d'Apple ne sont pas disponibles. Exemple: il arrive souvent que le " pm " pour faire un pragma mark ne s'affiche pas quand je veux en faire une 2e juste à  la ligne du premier (pour mettre par exemple un trait de séparation puis un descriptif comme en-tête pour les méthodes suivantes).

    J'espère qu'Apple corrigera ça... à  moins qu'il y ait une astuce ? Cela dit sinon cette nouvelle mouture est vraiment pas mal je trouve !
  • AliGatorAliGator Membre, Modérateur
    septembre 2009 modifié #57
    J'ai (déjà ) trouvé la raison, et un bout de solution...

    Il y a une nouvelle clé dans les TextMacros, en plus de IncludeContexts, ExcludeContexts, etc. C'est la clé "OnlyAtBOL" (comme "Only at Beginning-of-Line", quoi).

    Mais si cette clé n'est pas présente du tout, ou même qu'on la met et qu'on met sa valeur à  "NO", la TextMacro ne marche plus. Donc si tu mets "OnlyAtBOL = NO;" ça changera rien, mais si tu mets "OnlyAtBOL = YES;" la complétion sur ta TextMacro va remarcher... mais que quand tu seras en début de ligne.

    (D'ailleurs ce OnlyAtBOL et ton exemple de pragma mark doivent un peu être liés avec tout ça, il doit s'emmêler les pinceaux qqpart là  dedans...)

    Foireux, ce truc ! Ca sent le bug à  faire remonter à  Apple...
  • AliGatorAliGator Membre, Modérateur
    septembre 2009 modifié #58
    J'ai rempli et envoyé un BugReport à  l'équipe Xcode d'Apple, on va bien voir leur réponse... à  suivre.

    Sinon pour info, j'ai mis à  jour mon petit script permettant de générer les TextMacros à  la volée pour pouvoir implémenter rapidement les @protocols par autocomplétion. Maintenant compatible Snow Leopard du coup.
    c'est là 
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #59
    Pour info, réponse d'Apple :
    16-Sep-2009 11:51 PM YVONNE  VILLA  :
    This bug has been closed as Duplicate. We are tracking this known issue under the Bug ID listed above in the bug State (Duplicate/7219873).
    D'ailleurs à  propos, vous connaissez un moyen de consulter les autres bugreports (autres que ceux qu'on a soumis nous-mêmes) ? Genre justement si je veux aller lire et suivre le bugreport duplicata juste pour m'informer de l'évolution ?
  • zoczoc Membre
    septembre 2009 modifié #60
    dans 1253174161:
    vous connaissez un moyen de consulter les autres bugreports (autres que ceux qu'on a soumis nous-mêmes)

    On ne peut pas... Pour des raisons de confidentialité, seuls les créateurs de rapports peuvent en suivre l'évolution (le bug soumis pourrait, selon apple, parfois contenir des informations personnelles).

    Ceci dit, un site, OpenRadar, propose, sur la base du volontariat, à  ceux qui ouvrent un ticket chez Apple de copier son contenu ainsi que son évolution sur le site afin que tout le monde puisse en profiter. Avec un peu de chance le ticket que tu veux suivre y sera...

    Edit: Et t'as de la chance, il y est. Mais pas beaucoup d'infos pour le moment.

    J'en profite pour conseiller à  tout le monde d'aller poster ses bugreports sur OpenRadar, et d'utiliser la même notation qu'Apple sur ses mailings lists pour faire référence à  vos bugs, comme expliqué ICI. Ca permet, avec l'extension idoine, de cliquer sur un lien et de se retrouver directement sur la bonne page d'OpenRadar ;)
  • AliGatorAliGator Membre, Modérateur
    23:57 modifié #61
    Merci :)

    Ca serait quand même pratique qu'Apple permette juste de lire les rapports de bugs des autres, avec éventuellement par exemple une case à  cocher quand on publie notre rapport pour autoriser à  le rendre public ou non (ce qui nous éviterait de le poster en double sur OpenRadar, mais permettrait de garder privés nos rapports de bugs contenant des infos persos si on veut)
Connectez-vous ou Inscrivez-vous pour répondre.