williamthome

williamthome

Hi!

In this issue for my pull request in vscode-elixir-snippets, I could not find a solution to the problem.

My regex looks like this

${RELATIVE_FILEPATH/^([^\\/\\\\]+[\\/\\\\])|(\\.ex|\\.exs)$|([^._\\/\\\\]+)|_|([\\/\\\\])/${3:/capitalize}${4:+.}/g}

Works for defmod and ex_unit snippets, but not for supervisor, dynamic_supervisor and gen_server, and the regex is exactly the same!

As described in my question in stackoverflow., the output for lib/shop_web/live/product_live/index.ex should be ShopWeb.Live.ProductLive.Index

Here works perfectly:

 "dmod": {
    "prefix": ["dmod", "defmod"],
    "comments": [
      "Generates the namespace for a file.",
      "e.g. A file with the path `lib/foo/bar/baz/boing.ex` would resolve to Foo.Bar.Baz.Boing.",
    ],
    "body": [
      "defmodule ${RELATIVE_FILEPATH/^([^\\/\\\\]+[\\/\\\\])|(\\.ex|\\.exs)$|([^._\\/\\\\]+)|_|([\\/\\\\])/${3:/capitalize}${4:+.}/g} do",
      "\t$0",
      "end"
    ],
    "description": "def module",
    "scope": "source.elixir"
  },

But here not

 "Supervisor": {
    "prefix": "supervisor",
    "body": [
      "defmodule ${RELATIVE_FILEPATH/^([^\\/\\\\]+[\\/\\\\])|(\\.ex|\\.exs)$|([^._\\/\\\\]+)|_|([\\/\\\\])/${3:/capitalize}${4:+.}/g} do",
      "\tuse Supervisor",
      "",
      "\tdef start_link(${args}) do",
      "\t\tSupervisor.start_link(__MODULE__, [${args}], name: __MODULE__)",
      "\tend",
      "",
      "\tdef init([${args}]) do",
      "\t\tchildren = []",
      "",
      "\t\tSupervisor.init(children, strategy: :one_for_one)",
      "\tend",
      "end"
    ],
    "description": "Insert code for an OTP Supervisor",
    "scope": "source.elixir"
  },

The output for the supervisor snippet is

defmodule ${RELATIVE_FILEPATH/^([^/\]+[/\])|(\.ex|\.exs)$|([^._/\]+)|_|([/\])//capitalize,+./g} do
  use Supervisor

  def start_link(args) do
    Supervisor.start_link(__MODULE__, [args], name: __MODULE__)
  end

  def init([args]) do
    children = []

    Supervisor.init(children, strategy: :one_for_one)
  end
end

And the same issue is for dynamic_supervisor and gen_server snippets.

Can someone give me a help?

Showing Posts 1 to 5

williamthome

williamthome OP

Found what I was missing.

e.g. Instead of ${args} the correct syntax is ${1:args}.

This solves the problem.

williamthome

williamthome OP

@axelson any interest to implement this regex for vscode-elixir-ls as default for modules name?

axelson

axelson

Scenic Core Team

This look like a handy snippet! Unfortunately it’s not likely to get included in vscode-elixir-ls because not everyone’s modules match that directory structure. Also that regex looks like it might take a lot of maintenance.

I believe that there are some Elixir-specific extensions that focus on providing snippets, maybe one of those would be a good fit for your snippet. Thanks for sharing it! :+1:

williamthome

williamthome OP

Ok. Thanks for the reply! :grin:

Jarmon7815

Jarmon7815

It is easy to add code snippets to visual studio code both for your own use or to share with others on the public marketplace.

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews