榆树和VSCode:格式化器混乱间距

问题描述 投票:0回答:1

所以我今天开始学习榆树。我使用VSCode作为我的编辑器。

我跟着the docs进行了设置,并通过elm安装了el-format以及npm install -g elm elm-format。我还安装了VSCode Elm扩展。

接下来,在我的settings.json中我设置:

"[elm]": {
  "editor.formatOnSave": true
},

然后我继续学习本教程。在其中代码的格式如下:

import Browser
import Html exposing (Html, Attribute, div, input, text)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)



-- MAIN


main =
  Browser.sandbox { init = init, update = update, view = view }



-- MODEL


type alias Model =
  { content : String
  }


init : Model
init =
  { content = "" }



-- UPDATE


type Msg
  = Change String


update : Msg -> Model -> Model
update msg model =
  case msg of
    Change newContent ->
      { model | content = newContent }



-- VIEW


view : Model -> Html Msg
view model =
  div []
    [ input [ placeholder "Text to reverse", value model.content, onInput Change ] []
    , div [] [ text (String.reverse model.content) ]
    ]

但是当我点击安全时,它会像这样格式化代码:

module Main exposing (Model, Msg(..), init, main, update, view)

import Browser
import Html exposing (Attribute, Html, div, input, text)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)



-- MAIN


main =
    Browser.sandbox { init = init, update = update, view = view }



-- MODEL


type alias Model =
    { content : String
    }


init : Model
init =
    { content = "" }



-- UPDATE


type Msg
    = Change String


update : Msg -> Model -> Model
update msg model =
    case msg of
        Change newContent ->
            { model | content = newContent }



-- VIEW


view : Model -> Html Msg
view model =
    div []
        [ input [ placeholder "Text to reverse", value model.content, onInput Change ] []
        , div [] [ text (String.reverse model.content) ]
        ]

所以它增加了额外的线条,额外的module Main exposing ...和空间数量增加了一倍。我尝试使用VSCode中的页脚再次将空格设置为2,但这没有帮助。

我的问题是:

  1. 保存是否可以添加额外的module Main ...
  2. 有2个空间最佳实践/社区标准,还是4个?
  3. 如果它是2(就像在教程的默认代码中那样)我怎样才能让格式化程序尊重它?
  4. 如果不是,为什么教程是非标准缩进?
elm code-formatting
1个回答
7
投票

首先,这个问题过于宽泛,主要是基于意见的,因此可能会被关闭。我认为它本来更适合the forums

也就是说,我会尽可能地尽力回答它,因为它就在这里:

  1. 是?大多数模块在没有暴露某些东西的情况下不会非常有用,并且明确暴露的内容是一种很好的做法。
  2. elm-format是社区标准,所以它是4。
  3. 你不能。这是设计的。它也在各种论坛上被讨论过死亡。 Here's one issue discussing it
  4. 你必须问Evan。它可能与网络格式有关,或者只是Evan懒惰。
© www.soinside.com 2019 - 2024. All rights reserved.