Skip to content

Instantly share code, notes, and snippets.

View aifrak's full-sized avatar

Franklin Rakotomalala aifrak

  • CLARK
  • Frankfurt, Germany
  • LinkedIn in/aifrak
View GitHub Profile
@Nezteb
Nezteb / elixir-language-server-comparison.md
Last active September 9, 2025 16:14
Elixir Language Server Comparisons

Update 2

As of August 28th, 2025, Expert LSP has been released: https://github.com/elixir-lang/expert

Although still a work in progress, the plan is for the other three LS implementations to be archived. I may try to come up with a new way to track Expert's featureset, but I would probably contribute that back to Expert as documentation.

Update

As of August 15, 2024, it's been announced that the three projects bein compared here will soon merge! See the official Elixir blog post for more details: https://elixir-lang.org/blog/2024/08/15/welcome-elixir-language-server-team/

@andreaseriksson
andreaseriksson / convert_to_verified_routes.ex
Last active March 25, 2025 14:01
This is a mix task for converting old Phoenix routes to new verified routes
defmodule Mix.Tasks.ConvertToVerifiedRoutes do
@shortdoc "Fix routes"
use Mix.Task
@regex ~r/(Routes\.)(.*)_(path|url)\(.*?\)/
@web_module MyAppWeb
def run(_) do
Path.wildcard("lib/**/*.*ex")
@caspg
caspg / 1_searchbar_live.ex
Last active September 28, 2025 22:09
Example of real-time search bar implementation in Phoenix LiveView and Tailwind. Working example on https://travelermap.net/parks/usa
defmodule TravelerWeb.SearchbarLive do
use TravelerWeb, :live_view
alias Phoenix.LiveView.JS
alias Traveler.Places
def mount(_params, _session, socket) do
socket = assign(socket, places: [])
{:ok, socket, layout: false}
end
@danirukun
danirukun / .iex.exs
Created January 31, 2023 16:44
My custom global IEx script file that is preloaded before each IEx session. Adds some convenience functions.
IO.puts("Using .iex.exs file loaded from #{__DIR__}/.iex.exs")
defmodule Util do
def atom_status do
limit = :erlang.system_info(:atom_limit)
count = :erlang.system_info(:atom_count)
IO.puts("Currently using #{count} / #{limit} atoms")
end
@toranb
toranb / fizzbuzz.ex
Last active January 30, 2024 07:40
fizzbuzz with Axon (collaboration with Ian Warshak)
defmodule Mlearning do
@moduledoc false
def mods(x) do
[rem(x, 3), rem(x, 5)]
end
def fizzbuzz(n) do
cond do
rem(n, 15) == 0 -> [0, 0, 1, 0]
@randycoulman
randycoulman / recompile_elixir_ls.md
Last active August 22, 2023 20:50
Recompiling ElixirLS

When ElixirLS is compiled with a different version of Elixir/Erlang than we use in our projects, it is unable to show pop-up documentation and auto-completion for certain constructs (like imports or requires done by a using block).

To check if you have a version mismatch, you can scroll to the top of the output pane for ElixirLS (VSCode View -> Output, then select ElixirLS from the dropdown list).

ElixirLS v0.13.0 and Later

In v0.13.0, vscode-elixir-ls added the ability to override the default elixirLS release path in config. This allows us to recompile elixirLS with whichever versions of Elixir and Erlang we like and then tell the extension to use that version. It should even be possible to compile with multiple different Elixir/Erlang combinations and use different versions in different projects, though I haven't tried that yet.

Here's how to do this:

@tdamsma
tdamsma / migrating-away-from-docker-desktop.md
Last active September 2, 2025 10:46
Running VSCode remote containers on windows without docker desktop

Running VSCode remote containers on windows without docker desktop

Due to the license issues with docker desktop and the fact that you don't really need this buggy bit of software, this guide will walk you through the steps to use VSCode+remote-containers in combination with WSL2 without using docker desktop.

Get rid of docker desktop

Only if you have docker desktop currently installed of course

Uninstall docker desktop application

@angelikatyborska
angelikatyborska / gettext.ex
Last active October 9, 2024 21:10
A custom `gettext_with_link` macro for easily putting inline links into gettext strings
# Has one external dependency except for Gettext: https://github.com/rrrene/html_sanitize_ex
defmodule MyApp.Gettext do
@doc """
A helper for translations with links.
Pass in the translation string which must include
`%{link_start}`/`%{link_end}`. For multiple URLs, use
`%{link_start_<0,1,2...>}`.
@angelikatyborska
angelikatyborska / gettext_test.exs
Last active January 16, 2022 16:24
A unit test for Gettext translations that checks if the original and the translation use the same HTML tags. Uses Floki to parse HTML.
defmodule MyAppWeb.GettextTest do
use ExUnit.Case
import MyAppWeb.Gettext
# A unit test for Gettext translations that checks if the original and the translation
# use the same HTML tags.
#
# Uses Floki to parse HTML.
describe "translations" do
@davidteren
davidteren / nerd_fonts.md
Last active December 4, 2025 07:16
Install Nerd Fonts via Homebrew [updated & fixed]