# JuliaFormatter for imports / using

**URL:** <https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704>\
**Category:** General Usage\
**Tags:** package, style, formatting\
**Created:** [March 16, 2024, 6:08pm UTC](https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704 "2024-03-16T18:08:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [March 16, 2024, 6:08pm UTC](https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704/1 "2024-03-16T18:08:36Z")

</div>

I like writing my imports / using statements in the following style:

```julia
import CairoMakie
import CSV
import HDF5
import KernelDensity
import Makie
import StatsBase
using DataFrames: DataFrame
using Distributions: Gamma
using Distributions: logpdf
using Distributions: pdf
using Distributions: Poisson
using LinearAlgebra: Diagonal
using LinearAlgebra: eigen
using Makie: @L_str
using NaNStatistics: nanmean
using NaNStatistics: nansum
using ProgressMeter: @showprogress
using Random: bitrand
using Statistics: cor
using Statistics: mean
using Statistics: middle
using StatsBase: countmap

```

Thus, each `using` (for each symbol) and each `import` goes in its own line, and lines are sorted alphabetically.

Can I write a JuliaFormatter spec to help me enforce this style?

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [March 16, 2024, 6:11pm UTC](https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704/2 "2024-03-16T18:11:26Z")

</div>

I like that style as well.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [March 18, 2024, 3:56pm UTC](https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704/3 "2024-03-18T15:56:31Z")

</div>

This contradicts one Julia styleguide (there are at least three I know of this one I think most restrictive):

> **[GitHub - SciML/SciMLStyle: A style guide for stylish Julia developers](https://github.com/SciML/SciMLStyle?tab=readme-ov-file#modules)**
>
> A style guide for stylish Julia developers. Contribute to SciML/SciMLStyle development by creating an account on GitHub.

I don’t like it too much that there are many styleguides, at least when contradicting…

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [March 18, 2024, 4:57pm UTC](https://discourse.julialang.org/t/juliaformatter-for-imports-using/111704/4 "2024-03-18T16:57:43Z")

</div>

It’s fine to have different **style** guides, that’s why it’s a _style_. What’s important is to stick to it in your own projects.

I still prefer my verbose way of writing imports over SciML guideline.
