Do you keep them in your IDE, or elsewhere? Do you have an app for that? Are they easily shared?

I realized I have no system at all but could use one to make it easier to find code I’ve written and might need again some day.

By snippets, I am referring to any chunk of code / text in any format or language, of any length.

Thanks!

EDIT A DAY LATER: Thanks you all! Reading all these ideas, I got inspired to create my own little web app. Wish me luck… :)

    • @perishthethought@lemm.eeOP
      link
      fedilink
      English
      21 year ago

      It’s got to be here somewhere… (Search for way too long…) Dang, I guess I’ll just write it again from scratch

      Yeah, this is what I am looking to avoid.

      • I have a weird knack for reverse engineering, and reverse engineering stuff I’ve written 7-10 years ago is even easier!

        I tend to be able to find w/e snippet I’m looking for fast enough that I can’t be assed to do it right yet 😆

  • terrehbyte
    link
    fedilink
    English
    21 year ago

    I’ve only used code snippets in VS Code which can store them in user settings for synchronization. They can also e stored in project settings, which can be optionally synchronized via source control.

    I tend not to need them in larger projects where a lot of codegen is available or macros, so I haven’t thought about a solution for things like VS or manual syncing.

  • @varsock@programming.dev
    link
    fedilink
    101 year ago

    I would appretiate if someone could explain the practical utility of snippets because it just dawned on me how useful they might be.

    • @perishthethought@lemm.eeOP
      link
      fedilink
      English
      21 year ago

      Think about how you write code. Is it all new, or are there functions / API calls / whatever that you might re-use from time to time?

      If that’s possible, think about how you go find that code now. Wouldn’t it be cool if you could type a short bit like, “funcA” and boom! your IDE filled in the whole function? Or, worst case, you flip over to another tool, find the snippet you want, copy and paste it into your work.

      That’s what I am thinking about, at least. I’m just not sure how I want to get there yet.

      • @crimsonpoodle@pawb.social
        link
        fedilink
        11 year ago

        You could just write a little terminal utility that puts the string literal of the snippet in your copy buffer with a little search and db for finding the right one and storing new ones— might have to have some weird cases for cross platform tho

    • @Luvon@beehaw.org
      link
      fedilink
      11 year ago

      If you are unfortunate enough to code in a language where the “designers” thought EVERYTHING should be multi command structures in an English like syntax……

      Then you basically need them to autocomplete how to correctly write everything 😅

      I use Abap at work from sap. Its special.

      They have over 3000 key word structures. It’s ridiculous.

    • @coloredgrayscale@programming.dev
      link
      fedilink
      8
      edit-2
      1 year ago

      Easy access to small snippets of code you often need, but putting them in their own library would be crazy.

      • Opening a file / db connection
      • parsing xml/json/… ,
      • template for unit tests,
      • import and initialization of framework at work.

      Depending on the IDE snippets can also move parts of the code around: (intellij live templates)

      • variable.notnull -> if (variable != null) {… }
      • “text %s”.format -> String.format(“text %s”,…)
  • Gamma
    link
    fedilink
    English
    2
    edit-2
    1 year ago

    Vscode syncs them across all my computers (and even into browser sessions), so I use that.

    If you’re meaning a place for code, I have a private scratchpad repo

    • @perishthethought@lemm.eeOP
      link
      fedilink
      English
      11 year ago

      I work in VSC most of the time too, so using its built-in user Snippets feature seems to make the most sense. How do you get it to sync across computers? (I can go look into that if it’s a native feature)

  • Free Palestine 🇵🇸
    link
    fedilink
    11 year ago

    Back when I used macOS, I liked an app called SnippetsLab. Nowadays, I just throw them in Emacs Org files. Emacs is actually very handy for this, you get syntax highlighting in the code block, you can execute the code right from inside your Emacs environment and there’s even alpha support for lsp-mode inside of Org code blocks.

    • @otl@lemmy.srcbeat.com
      link
      fedilink
      English
      51 year ago

      I mean, I get it. But… damn… can you imagine the relative computing power required to read a text file versus asking a LLM to generate that same text?

      • Ok.right in the feels.

        To be honest, I try to search before on stackoverflow most of the time, due to the ability to write a few keywords and get a suitable answer versus formulate a prompt for the LLM.

        But on the other side, llms are used for so much bullshit and invaluable prompts that my questions for helping me in my job has a more worthwile argument.

        But of course it is a problematic topic related to llms.

        • @otl@lemmy.srcbeat.com
          link
          fedilink
          English
          11 year ago

          Haha no worries mate I totally get you. One of the best things about LLMs when I’ve played with them is it exercises my ability to write questions and requirements

  • @Lysergid@lemmy.ml
    link
    fedilink
    261 year ago

    Please, can you give an example of such code snippets? I’m wondering what people consider reusable in different projects.

        • @lysdexic@programming.dev
          link
          fedilink
          English
          61 year ago

          If a library or framework requires boilerplate code it’s a bad library or a bad framework.

          I think this take is uneducated and can only come from a place of inexperience. There’s plenty of usecases that naturally lead to boilerplate code, such as initialization/termination, setting up/tearing down, configuration, etc. This is not a code smell, it’s just the natural reflection of having to integrate third-party code into your projects.

          • @xmunk@sh.itjust.works
            link
            fedilink
            11 year ago

            It depends how much boilerplate you need - there’s obviously some stuff that needs to be the same all over but if there’s significant amounts of code you constantly need to replicate that’s when it’s a code smell for me. I probably could’ve been more precise in my initial statement.

          • shnizmuffin
            link
            fedilink
            English
            21 year ago

            Yes, in my experience, boilerplate typically comes into play when you’re using two libraries that don’t know about one another, or have no business touching each other’s concerns. (Using Alpine’s x-cloak with Tailwind comes to mind.)

            That and every single *-pipelines.yaml CI/CD config I’ve ever written.

    • @derpgon@programming.dev
      link
      fedilink
      41 year ago

      In PHP, a lot. Unit test are boilerplate 90% of the time, getters and setters (although they can be done via Generate), ORM classes with your default shebang (autoincrement ID), and I could go on and on.

      I dislike snippets for code like “key this array by some logic” - this should be reusable via a dedicated helper or service.

      • @xmunk@sh.itjust.works
        link
        fedilink
        0
        edit-2
        1 year ago

        Getters/setters can also be done automatically by __get, __set or __call it’s even possible to write a base class or trait that does this automatically.

        I am a PHP guru, if you’ve ever got questions I’m happy to help.

        • @derpgon@programming.dev
          link
          fedilink
          11 year ago

          Sadly that’s against best practices, it does not work with IDE autocomplete, and neither with PHPStan / PHPCS. You also don’t get coverage from PHPUnit. And renaming a property does not rename the usage across the whole project. __get and __set should not be heavily used, and the project shouldn’t be based on them.

          Some libraries, like Eloquent, uses them well, but you still need to annotate your class with @property if you want to stay sane.

    • @otl@lemmy.srcbeat.com
      link
      fedilink
      English
      01 year ago

      Let’s say a function, about 20 lines. Something too small to warrant an external dependency but tricky enough that you don’t want to keep rewriting it.

      I have things like a function to read through a file of newline delimited text of key-value pairs separated by whitespace. It skips comments (lines beginning with “#”), and returns the pairs. I’m happy to do a little copying instead of having a little dependency.

  • @Zeth0s@lemmy.world
    link
    fedilink
    691 year ago

    I create proper libraries. I don’t do snippets because they make code dirty, redundant and difficult to read on the long run.

    I actively discourage people in my team to use snippets copy and pasted everywhere themselves. If it’s reusable code, it should be usable by everyone and well tested

    • Tekhne
      link
      fedilink
      41 year ago

      The only case I use snippets for is for debug code that I use often. Sometimes there are things I find myself doing a lot for debugging that don’t have any reason to be in code (e.g. nicely formatting certain objects for debug purposes)

      • @xmunk@sh.itjust.works
        link
        fedilink
        11 year ago

        Write a function or macro so you can reuse them. The project I work on has dozens of debug assisting code paths. Here are two examples: normally when talking to the db you’ll call run($sql, $boundVariables) on a handle. Alternatively you can call debug($sql, $boundVariables) to have the handle run the query normally then rerun the query prefixed with EXPLAIN (blah,blah) to get the execution plan. We also have assembleEmulatedQuery($sql, $boundVariables) which will manually replace all the binding tokens in the SQL with their values, do some string escaping and return a big honking string that you can dump into the database… that last one is useful for performance tuning since it can be used to easily capture expensive query forms. Also - assembleEmulatedQuery will throw an exception on our production environment because it’s unsafe due to the potential of SQL Injection.

        Build debugging functions and add tests over them - future you will thank you!

    • @abhibeckert@lemmy.world
      link
      fedilink
      20
      edit-2
      1 year ago

      This. Replace commonly used code snippets well written code that reduces them to one or two lines of code and take advantage of auto-complete in your IDE.

      For the rare case where that doesn’t make sense… I’m I’ll ususally find (or create) an extension/plugin for my IDE. Something that can be smarter than any snippet.

  • @shiveyarbles@beehaw.org
    link
    fedilink
    41 year ago

    I have like a zillion notepad++ tabs. Every once in a while I’ll go through the tabs to see if I want to save the snippets.