Skip to content

Commit ce86171

Browse files
author
Ian
committed
[!] 2017-01
[.^] "readme.txt" updated. [^] Added ability to pass parameters to formatter. [-] Rockspec dropped (moved to another repository). [.^] Sync with current "workshop" functions library.
1 parent 73019b9 commit ce86171

File tree

17 files changed

+130
-315
lines changed

17 files changed

+130
-315
lines changed

#mechs/generic_file_converter.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
local default_loader = request('^.workshop.load_from.lua.serialize_table.lua_code')
1+
local default_loader = request('^.workshop.load_from.lua_table')
22

3-
local serialize_func = request('^.workshop.save_to.lua.serialize_table.lua_code')
4-
local serialize_func_params =
3+
local table_to_str = request('^.workshop.save_to.lua_table')
4+
local table_to_str_params =
55
{
66
serializer =
77
{
@@ -13,7 +13,7 @@ local serialize_func_params =
1313
local default_saver =
1414
function(t)
1515
if is_table(t) then
16-
return serialize_func(t, serialize_func_params)
16+
return table_to_str(t, table_to_str_params)
1717
else
1818
return t
1919
end

lcf-5.1-0.rockspec

Lines changed: 0 additions & 267 deletions
This file was deleted.

lua_reformat.lua

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
local load_lua = request('workshop.load_from.lua')
22
local pretty_lua = request('workshop.save_to.lua')
33

4+
local pretty_lua_options =
5+
{
6+
indent_chunk = ' ',
7+
right_margin = 100,
8+
max_text_width = 65,
9+
}
10+
411
local convert = request('#mechs.generic_file_converter')
512
return
613
function(f_in_name, f_out_name)
@@ -14,7 +21,7 @@ return
1421
end,
1522
save =
1623
function(t)
17-
return pretty_lua(t)
24+
return pretty_lua(t, pretty_lua_options)
1825
end,
1926
}
2027
)

readme.txt

Lines changed: 66 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,73 @@
1-
Formats any valid lua 5.3 code.
1+
Description
22

3-
Main advantage is that it wraps code lines at right margin (default
4-
is 70th character in line). Efforts are made to represent code in more
5-
easy to understand form, not the shortest one.
3+
Formats any valid lua 5.3 code.
4+
5+
Main advantage is that it wraps code lines to maintain readability.
6+
Efforts are made to represent code in more easy to understand form,
7+
not the shortest one.
8+
9+
(
10+
This is a backport version for lua 5.1. Potentially it may
11+
have more problems and rarely updated. This is done to make
12+
tool available to most community who uses 5.1 for LuaJIT.
13+
)
614

715
Requirements
816

9-
Sole requirement is lua5.3. Earlier versions will not work.
17+
Sole requirement is lua v5.1.
18+
19+
20+
Installation
21+
22+
sudo luarocks install lcf
23+
1024

1125
Usage
1226

13-
lua.reformat <fIn> <fOut>
27+
From command-line
28+
29+
lua.reformat <fIn> <fOut>
30+
31+
32+
From lua interpreter
33+
34+
Suppose you have a string with lua code and wish to get another
35+
string with formatted code.
1436

15-
---
37+
do
38+
local lua_code_str = 'do return end' -- < fill it
39+
40+
require('lcf.workshop.base')
41+
local get_formatted_ast = request('lcf.workshop.load_from.lua')
42+
local get_formatted_code = request('lcf.workshop.save_to.lua')
43+
44+
return get_formatted_code(get_formatted_ast(lua_code_str))
45+
end
46+
47+
48+
Passing formatting parameters
49+
50+
You may override default parameters by passing a table with
51+
new values of changed parameters:
52+
53+
get_formatted_code(
54+
get_formatted_ast(lua_code_str),
55+
{
56+
indent_chunk = ' ',
57+
right_margin = 100,
58+
max_text_width = 65,
59+
}
60+
)
61+
62+
<indent_chunk> is a string using for building one indent.
63+
You may try '|..' to see it's effect.
64+
<right_margin> limits length of line with indent. Setting it
65+
makes sense for printring.
66+
<max_text_width> limits length of line without indent, i.e.
67+
length of text in line. Setting it makes sense for windowed
68+
viewing in editor.
69+
70+
--
1671
* Built on my own general strings parser,
1772
which uses my own lua syntax representation,
1873
produces AST (annotated syntax tree),
@@ -22,14 +77,16 @@ Usage
2277
and maintain indentation.
2378

2479
* Currently comments are stripped from code. I'll add support
25-
for them someday.
80+
for them someday (or will not and explain why).
2681

2782
* It uses local copy of my "workshop" code hive.
2883
Current version: https://github.com/martin-eden/workshop
2984

3085
* See also https://github.com/martin-eden/contents
31-
---
86+
87+
--
3288
2016-08-16
3389
2017-01-03
3490
2017-01-18
3591
2017-01-22
92+
2017-01-28

workshop/compile/lua/formatter.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
of it.
66
]]
77

8-
local formatter = request('formatter.interface')
8+
local formatter_class = request('formatter.interface')
99

1010
return
11-
function(data_struc)
11+
function(data_struc, options)
1212
assert_table(data_struc)
13+
local formatter = new(formatter_class, options)
1314
formatter:init()
1415
local is_ok = formatter:process_node(data_struc)
1516
local result = formatter.printer:get_text()
Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
return
22
function(self)
3-
self.indent_chunk = ' '
43
self.printer.indent_chunk = self.indent_chunk
54
self.printer:init()
65
self.state_keeper:init()
7-
self.max_text_width = 60
8-
self.right_margin = 100
9-
--[[
10-
<max_text_width> limits length of line without indent, i.e.
11-
length of text in line. Setting it makes sense for windowed
12-
viewing in editor.
13-
<right_margin> limits length of line with indent. Setting it
14-
makes sense for printring.
15-
]]
166
end

workshop/compile/lua/formatter/interface.lua

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
return
22
{
3-
right_margin = nil,
4-
max_text_width = nil,
5-
indent_chunk = nil,
6-
printer = new(request('^.^.^.string.text_block.interface')),
7-
state_keeper = new(request('state_keeper.interface')),
3+
right_margin = 80,
4+
max_text_width = 65,
5+
indent_chunk = ' ',
6+
printer = request('^.^.^.string.text_block.interface'),
7+
state_keeper = request('state_keeper.interface'),
8+
89
init = request('init'),
910

1011
handlers = request('handlers.interface'),
@@ -22,3 +23,11 @@ return
2223

2324
representation_is_allowed = request('representation_is_allowed'),
2425
}
26+
27+
--[[
28+
<max_text_width> limits length of line without indent, i.e.
29+
length of text in line. Setting it makes sense for windowed
30+
viewing in editor.
31+
<right_margin> limits length of line with indent. Setting it
32+
makes sense for printring.
33+
]]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
return
2+
function(self)
3+
return self.serializer:get_result()
4+
end
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
return
22
{
3-
serialize = request('serialize'),
4-
5-
init = request('init'),
63
node_recs = {},
74
serializer = request('^.lua_table.interface'),
5+
86
put_qualified_key = request('put_qualified_key'),
97
serialize_subtable = request('serialize_subtable'),
8+
9+
init = request('init'),
10+
11+
serialize = request('serialize'),
12+
get_result = request('get_result'),
1013
}

workshop/compile/lua/serialize_table/lua_code/serialize.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ local may_print_inline =
3434
]]
3535

3636
return
37-
function(self, root, a_params)
37+
function(self, root)
3838
local assembly_order
3939
local dfs_params =
4040
{
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
return
2+
function(self)
3+
return self.string_adder:get_result()
4+
end
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
return
22
{
3-
serialize = request('serialize'),
4-
5-
init = request('init'),
63
always_index_keys = false,
4+
initial_deep = 0,
5+
76
name_giver = request('^.^.^.^.handy_mechs.name_giver'),
87
table_iterator = request('^.^.^.^.table.ordered_pass'),
98
string_adder = request('^.^.^.^.handy_mechs.string_adders.array'),
109
token_giver = request('^.^.token_givers.any'),
1110
quote_string = request('^.^.quote_string'),
1211
serialize_key = request('serialize_key'),
1312
serialize_key_value = request('serialize_key_value'),
13+
14+
init = request('init'),
15+
16+
serialize = request('serialize'),
17+
get_result = request('get_result'),
1418
}

workshop/compile/lua/serialize_table/lua_table/serialize.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
return
22
function(self, node, deep, parent_type)
3+
deep = deep or self.initial_deep
34
local string_adder = self.string_adder
45
local token = self.token_giver
56
local quote_string = self.quote_string

workshop/load_from/lua_table.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
return request('lua.serialize_table.lua_code')

workshop/save_to/lua.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
local run_formatter = request('^.compile.lua.formatter')
22

33
return
4-
function(data_struc)
5-
return run_formatter(data_struc)
4+
function(data_struc, options)
5+
return run_formatter(data_struc, options)
66
end
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
-- Dumps table to lua code which recreates table.
22

3-
local override_params = request('^.^.^.handy_mechs.override_params')
4-
local default_params = request('^.^.^.compile.lua.serialize_table.lua_code.interface')
3+
local table_serializer_class =
4+
request('^.^.^.compile.lua.serialize_table.lua_code.interface')
55

66
return
7-
function(value, a_params)
8-
assert_table(value)
9-
local object = override_params(default_params, a_params)
10-
object:init()
11-
object:serialize(value)
12-
return object.serializer.string_adder:get_result()
7+
function(t, options)
8+
assert_table(t)
9+
local table_serializer = new(table_serializer_class, options)
10+
table_serializer:init()
11+
table_serializer:serialize(t)
12+
return table_serializer:get_result()
1313
end

workshop/save_to/lua_table.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
return request('lua.serialize_table.lua_code')

0 commit comments

Comments
 (0)