Nullifying Precipitation Machine

    @prettier/plugin-lua

    0.0.1 • Public • Published

    🚧  Work in Progress! 🚧

    Prettier Lua

    Prettier Lua Plugin

    WORK IN PROGRESS

    Please note that this plugin is currently in alpha stage and still under active development. We encourage everyone to try it and give feedback, but we don't recommend it for production use yet.

    Intro

    Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

    This plugin adds support for the Lua language to Prettier.

    Input

    function deepcopy(orig)
      local orig_type = type(orig)
         local copy
    
      if orig_type == 'table' then; copy = {}
      for orig_key, orig_value in next, orig, nil do
      copy[deepcopy(orig_key)] = deepcopy(orig_value)
              end
              setmetatable(
                copy,
                deepcopy(
                  getmetatable(orig)))
          else
              copy = orig
          end
        return copy
      end

    Output

    function deepcopy(orig)
    	local orig_type = type(orig)
    	local copy
    
    	if orig_type == "table" then
    		copy = {}
    		for orig_key, orig_value in next, orig, nil do
    			copy[deepcopy(orig_key)] = deepcopy(orig_value)
    		end
    		setmetatable(copy, deepcopy(getmetatable(orig)))
    	else
    		copy = orig
    	end
    	return copy
    end

    Install

    yarn:

    yarn add --dev prettier @prettier/plugin-lua
    # or globally
    yarn global add prettier @prettier/plugin-lua

    npm:

    npm install --save-dev prettier @prettier/plugin-lua
    # or globally
    npm install --global prettier @prettier/plugin-lua

    Use

    If you installed prettier as a local dependency, you can add prettier as a script in your package.json,

    "scripts": {
      "prettier": "prettier"
    }

    and then run it via

    yarn run prettier path/to/file.lua --write
    # or
    npm run prettier -- path/to/file.lua --write

    If you installed globally, run

    prettier path/to/file.lua --write

    Editor integration

    Integration in the prettier plugin for your favorite editor might not be working yet, see see the related issues for VS Code, Atom and Vim.

    For the moment, you can set up prettier to run on save like this:

    Atom

    Install save-autorun and create a .save.cson file in your project with the following content:

    "**/*.lua": "prettier ${path} --write"

    VScode

    Install Run on Save and add the following section to your settings:

    "emeraldwalk.runonsave": {
      "commands": [
        {
          "match": "\\.lua$",
            "cmd": "prettier ${file} --write"
        }
      ]
    }

    Vim

    Adding the following to .vimrc will define a custom command :PrettierLua that runs the plugin while preserving the cursor position and run it on save.

    " Prettier for Lua
    function PrettierLuaCursor()
      let save_pos = getpos(".")
      %! prettier --stdin --parser=lua
      call setpos('.', save_pos)
    endfunction
    " define custom command
    command PrettierLua call PrettierLuaCursor()
    " format on save
    autocmd BufwritePre *.lua PrettierLua

    Contributing

    If you're interested in contributing to the development of Prettier for Lua, you can follow the CONTRIBUTING guide from Prettier, as it all applies to this repository too.

    To test it out on a Lua file:

    • Clone this repository.
    • Run yarn.
    • Create a file called test.lua.
    • Run yarn prettier test.lua to check the output.

    Keywords

    none

    Install

    npm i @prettier/plugin-lua

    DownloadsWeekly Downloads

    238

    Version

    0.0.1

    License

    MIT

    Unpacked Size

    32.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • lydell
    • j-f
    • shinigami92
    • kddeisz
    • evilebottnawi
    • suchipi
    • mgrip
    • czosel
    • patrick91
    • zimme
    • azz
    • vjeux