Snippez - Codesnippet-Verwaltung vom feinsten

    • Beta

    Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Glossy Cherry.

      Snippez - Codesnippet-Verwaltung vom feinsten

      Name des Programms:
      Snippez 1.2.0.0

      Beschreibung:
      Snippez Verwaltet dynamisch beliebig viele CodeSnippets.

      Unterstützt werden viele gängige Programmiersprachen wie Assembler, Batch, Bash, VB.NET, JavaScript, HTML, Lua, CSS, C# und sogar InnoSetup.

      Eigene Snippets sind Kinderleicht zu erstellen.

      Außerdem sind viele Snippets schon standardmäßig dabei,
      unter anderem:

      Abgerundete Controls in VB.NET
      Dropshadow in VB.NET
      Form bewegen mit FormBorderstyle=None in VB.NET
      Farbverlauf als Hintergrund in VB.NET
      ... und viele andere

      Die Snippets sind Textdateien, die einer einfachen Formatierung unterliegen.
      Die Snippets liegen im Ordner "Snippets" oder einem Unterordner davon und werden durch einige kurze Textteilen komplett definiert.

      Der Snippez.zip liegt eine template.txt bei,
      in der die Formatierung der Snippets erklärt wird.

      Inhalt der template.txt

      Quellcode

      1. // Dies ist ein Kommentar.
      2. // Kommentare und Leerzeilen werden vom Parser ignoriert.
      3. // Ab Codeanfang (!CODE) werden Leerzeilen nichtmehr ignoriert.
      4. // Die Kategorie wird durch "!CATEGORY Kategorie-Name" definiert.
      5. // Der Name des Snippets wird durch "!NAME Name des Snippets" definiert.
      6. // Der Anfang des Codes wird durch "!CODE" definiert.
      7. // Beispielsnippet:
      8. !CATEGORY VB.NET
      9. !NAME HelloWorld Nachricht
      10. !CODE
      11. Module Module1
      12. Sub Main()
      13. MsgBox("Hello World!")
      14. End Sub
      15. End Module



      Um die Snippet-Informationen auszulesen habe ich mir einen einfachen Textdateien-Parser gebastelt.
      Ist eine Information zur Definition des Snippets nicht vorhanden,
      wird sie einfach ignoriert.
      Info: Der beginn des Codes sollte IMMER definiert werden,
      da sonst alle Leerzeilen innerhalb des Codes ignoriert werden.

      Den Parser biete ich euch Open Source an,
      da ich euch nichts vorenthalten will.

      Parser Quellcode

      VB.NET-Quellcode

      1. Public Class Parser
      2. Public Shared objCode(1024) As String
      3. ''' <summary>
      4. ''' Ruft den Parser auf
      5. ''' </summary>
      6. ''' <remarks></remarks>
      7. Public Shared Sub Parse()
      8. Dim ignorelzflag As Boolean = True
      9. Dim cat As String = vbNullString
      10. Dim nm As String = vbNullString
      11. Dim code As String = vbNullString
      12. Dim files As ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles(Application.StartupPath & "\snippets", FileIO.SearchOption.SearchAllSubDirectories)
      13. For Each filename As String In files
      14. ' StreamReader deklarieren
      15. Dim rd As New StreamReader(filename)
      16. ' Snippet-Informationen auslesen
      17. Do While Not rd.EndOfStream
      18. Dim gelesen As String = rd.ReadLine()
      19. Try
      20. If gelesen.StartsWith("!CATEGORY") Then
      21. ' !CATEGORY entfernen und den rest in die cat-Variable speichern
      22. cat = "[" & gelesen.Remove(0, 10) & "] "
      23. ElseIf gelesen.StartsWith("!NAME") Then
      24. ' !NAME entfernen und den rest in die nm-Variable speichern
      25. nm = gelesen.Remove(0, 6)
      26. ElseIf gelesen.StartsWith("//") Then
      27. ' Kommentar ignorieren
      28. ElseIf gelesen.StartsWith("!CODE") Then
      29. ignorelzflag = False
      30. ElseIf gelesen = vbNullString Then
      31. ' Wenn leerzeilen nicht ignoriert werden: Leerzeilen in Code eintragen
      32. If Not ignorelzflag Then
      33. code &= NewLine
      34. End If
      35. Else
      36. ' Die code-Variable mit der Codezeile erweitern
      37. code &= gelesen & NewLine
      38. End If
      39. Catch ex As Exception
      40. code = "Ein Fehler ist aufgetreten." & NewLine & "Bitte schließen Sie dieses Fenster."
      41. End Try
      42. Loop
      43. ignorelzflag = True
      44. ' Snippet hinzufügen
      45. frmMain.lbSnippets.Items.Add(cat & nm)
      46. ' objCode füllen
      47. objCode(frmMain.lbSnippets.Items.Count - 1) = code
      48. code = vbNullString
      49. Next
      50. End Sub



      Screenshots:
      siehe Anhang

      Verwendete Programmiersprache:
      Visual Basic .NET (IDE: VB 2010 Express)

      Systemanforderungen:
      • .NET Framework v4.0

      Bekannte Bugs:
      • Umlaute werden nicht dargestellt

      ToDo:
      • !THREAD hinzufügen, um einen Link als Quelle hinzuzufügen, falls benötigt.

      Dateigröße:
      25,50 KB

      Lizenz/Weitergabe:
      Freeware; Parser Open Source

      Download:
      Ich hoffe, hiermit unnötigen Threads im Forum entgegenzuwirken.

      Den Download findet Ihr im Anhang,
      für konstruktive Kritik bin ich immer offen.

      Hashes
      MD5 : A4BEC43691D24A678D547970C0121CB7
      SHA1 : 6E27FEF48C3E008A478132CE3071CAB0346B7F84
      SHA256 : F86FBEC1D1C15D5F9F3B1BF4DC368CE92FA82E7E25066CC8F934E3CF5910C619
      Bilder
      • snippetlesen.png

        30,64 kB, 842×474, 769 mal angesehen
      • Snippez.png

        23,46 kB, 800×500, 795 mal angesehen
      Dateien

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MarcoQuinten“ ()

      Welches sind die Vorteile des Programms gegenüber den in VS eingebauten Snippets?

      BTW: Format eines VS-Snippets zum Vergleich
      Spoiler anzeigen

      XML-Quellcode

      1. <?xml version="1.0" encoding="utf-8"?>
      2. <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      3. <CodeSnippet Format="1.0.0">
      4. <Header>
      5. <Keywords>
      6. <Keyword>propn</Keyword>
      7. </Keywords>
      8. <SnippetTypes>
      9. <SnippetType>Expansion</SnippetType>
      10. </SnippetTypes>
      11. <Title>SnippetFile1</Title>
      12. <Author>Home</Author>
      13. <Description>
      14. </Description>
      15. <HelpUrl>
      16. </HelpUrl>
      17. <Shortcut>propn</Shortcut>
      18. </Header>
      19. <Snippet>
      20. <Declarations>
      21. <Literal Editable="true">
      22. <ID>Vorname</ID>
      23. <ToolTip>Vorname</ToolTip>
      24. <Default>Vorname</Default>
      25. <Function>
      26. </Function>
      27. </Literal>
      28. <Literal Editable="true">
      29. <ID>String</ID>
      30. <ToolTip>String</ToolTip>
      31. <Default>String</Default>
      32. <Function>
      33. </Function>
      34. </Literal>
      35. </Declarations>
      36. <Code Language="vb"><![CDATA[ Private _$Vorname$ As $String$
      37. Public Property $Vorname$ As $String$
      38. Get
      39. Return _$Vorname$
      40. End Get
      41. Set(value As $String$)
      42. If value <> _$Vorname$ Then
      43. _$Vorname$ = value
      44. OnPropertyChanged("$Vorname$")
      45. End If
      46. End Set
      47. End Property]]></Code>
      48. </Snippet>
      49. </CodeSnippet>
      50. </CodeSnippets>


      Anhand deiner Programmbeschreibung erschließt sich mir nicht ganz:
      Ist das eine Verwaltung von Snippets? Wie kommen diese Snippets dorthin, wo ich sie brauche (Visual Studio)? Wie kommen neue Snippets dazu? Ich will das Prog nicht starten, um diese Dinge zu wissen. Der Screenshot gibt diese Info auch nicht her.

      Außerdem: Kennst du dein Arbeitswerkzeug?


      Eines noch:

      Ich hoffe, hiermit unnötigen Threads im Forum entgegenzuwirken.

      Netter Ansatz. Aber die unnötigen Threads kommen nicht durch fehlende Code-Brocken, sondern durch die Unfähigkeit diverser ""Programmierer"", diese Brocken selbstständig zu finden und zu adaptieren. Vom Verstehen dieser ganz zu schweigen.
      @INK-Software
      Was habt ihr alle gegen Krypton :)
      Wenn es sooo wichtig ist, kann ich das Krypton-Design entfernen.

      Das mit dem ? anstatt ÄÖÜ ist natürlich ärgerlich.
      Wenn ich Krypton entferne, ist das Problem ja gelöst.

      Die Speichermethode ist absichtlich txt.
      Wie soll denn sonst ein durchschnittlicher User eigene Snippets schreiben?
      Das ist mit ner Textdatei und meinem Parser viel einfacher.


      @der_Kurt

      Welches sind die Vorteile des Programms gegenüber den in VS eingebauten Snippets?

      Mein Format ist vor allem für Anfänger viel einfacher zu schreiben.

      Ist das eine Verwaltung von Snippets?

      Ja

      Wie kommen neue Snippets dazu?

      In der ZIP-Datei befindet sich die Snippez.exe und ein Ordner namens "Snippets".
      Einfach in diesem Ordner eine Textdatei erstellen und folgendes reinschreiben:

      Quellcode

      1. !NAME Name des Snippets
      2. !CATEGORY VB.NET
      3. !CODE
      4. ' Hier kommt der Quellcode des Snippets hin


      Außerdem: Kennst du dein Arbeitswerkzeug?

      Natürlich kenne ich mein Arbeitswerkzeug.
      Aber wenn ich mir ansehen, wie viele unnötige Threads es allein zu dem Thema "Form verschieben mit FormBorderStyle=None" gibt,
      dann gibt mir das doch zu denken.

      In meinem Tool sind viele oft gefragte Codesnippets enthalten.
      Auf jeden Fall besser, als alle 2 Tage irgendwo einen Thread zu sehen, in dem genau das gefragt wird.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MarcoQuinten“ ()

      @ThuCommix
      Naja. Über das Design meines Programms kann man sich streiten.
      Aber es tut genau das, was es soll. Es verwaltet Code.

      Aber du hast natürlich recht, dieses wintoolz-Programm ist um einiges besser.

      Aber eigentlich könnte man mein Programm ja nicht nur verwenden, um Code abzuspeichern.

      Neue Textdatei ->

      Quellcode

      1. !NAME Test
      2. !CATEGORY Floskeln
      3. !CODE
      4. Irgendsowas


      So könnte man auch häufig benutze Redewendungen abspeichern.
      Aber ist ja auch egal :)
      @xtts02
      Snippez.exe starten -> Snippet öffnen -> Code kopieren
      VisualStudio starten -> Code einfügen

      Wenn ich die Snippets direkt in VS übernehmen wollte,
      müsste ich das ja mit XML lösen, oder?

      Ich wollte es den Usern so einfach wie möglich machen.
      Und mir selbst hilft das Tool eigentlich ganz gut.

      Ich benutze manche (längeren) Codeteile oft in verschiedenen Projekten.
      Diese Speichere ich schnell in einer Snippez-konformen Textdatei.

      Sobald ich den Code brauche öffne ich Snippez und schon hab ich den Code.

      @ThuCommix
      Das stimmt, ich liefere keinen Editor mit.
      Dafür gibts aber Syntax-Highlighting, wenn der Code in Snippez aufgerufen wird :)

      Wenn man schnell einen Code abspeichern möchte.
      Für was braucht man dann einen Editor?
      Einfach Copy&Paste in die Textdatei und er steht dir für immer zur verfügung.
      Da du Krypton nutzt hast du vergessen es beizulegen, nicht jeder hat es unbedingt installiert.
      Moderatorin: "Apropo ritzen.." Shin Chan: "hoho sie hat Po ritze gesagt"
      "saying to buy a mac because your anti-virus expired is like saying you're out of condoms so you're just going to go fuck dudes"
      "Wie auch in anderen Threads kann ich leider nichts bieten außer vielleicht spaß beim Skypen aber mehr leider auch nicht." - Sind kinder pornos nicht verboten?
      Dann lern es? problem solved.
      Moderatorin: "Apropo ritzen.." Shin Chan: "hoho sie hat Po ritze gesagt"
      "saying to buy a mac because your anti-virus expired is like saying you're out of condoms so you're just going to go fuck dudes"
      "Wie auch in anderen Threads kann ich leider nichts bieten außer vielleicht spaß beim Skypen aber mehr leider auch nicht." - Sind kinder pornos nicht verboten?