Вяз и VSCode: Форматтер портит интервалы - PullRequest
0 голосов
/ 27 апреля 2019

Итак, я начал изучать Elm сегодня.Я использую VSCode в качестве редактора.

Я следовал документам для настройки и установки 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 ... и удваивает количество пробелов.Я попытался установить пробелы в 2 снова, используя нижний колонтитул в VSCode, но это не помогло.

Мои вопросы:

  1. Это нормально, что сохранение добавляет дополнительные module Main ...?
  2. Имеет ли 2 пробела лучший стандарт / стандарт сообщества, или 4?
  3. Если это 2 (как в коде учебника по умолчанию), как я могу заставить мой форматер уважать это?
  4. Если это не так, почему у руководства нестандартный отступ?

1 Ответ

7 голосов
/ 27 апреля 2019

Прежде всего, этот вопрос является слишком широким и в первую очередь основанным на мнении и, вероятно, из-за этого будет закрыт. Это было бы более подходящим для форумов Я думаю.

Тем не менее, я постараюсь ответить на него как можно лучше, так как он здесь:

  1. Да? Большинство модулей не будут очень полезны без разоблачения чего-либо, и это хорошая практика, чтобы быть явным о том, что подвергается.

  2. elm-format является стандартом сообщества, поэтому 4 это так.

  3. Вы не можете. Это по замыслу. Это также обсуждалось до смерти на различных форумах. Вот один вопрос, обсуждающий это

  4. Тебе нужно спросить об этом Эвана. Это может быть связано с форматированием в Интернете или просто с ленивостью Эвана.

...