Reformat lua code with lua-format

This commit is contained in:
Marty Oehme 2020-10-29 19:00:23 +01:00
parent a365cef6c7
commit e5afcb5e15
Signed by: Marty
GPG key ID: B7538B8F50A1C800
4 changed files with 236 additions and 203 deletions

View file

@ -1,13 +1,16 @@
local ZK = {} local ZK = {}
local ls = require'zettelkasten.list' local ls = require 'zettelkasten.list'
function ZK.init(vimapi) function ZK.init(vimapi)
vim = vimapi or vim vim = vimapi or vim
ZK.options = { ZK.options = {
anchor_separator = vim.g["zettel_anchor_separator"] or vim.b["zettel_anchor_separator"] or "_", anchor_separator = vim.g["zettel_anchor_separator"] or
zettel_extension = vim.g["zettel_extension"] or vim.b["zettel_extension"] or ".md", vim.b["zettel_anchor_separator"] or "_",
zettel_root = vim.g["zettel_root"] or vim.b["zettel_root"] or "~/documents/notes", zettel_extension = vim.g["zettel_extension"] or
vim.b["zettel_extension"] or ".md"
-- zettel_root = vim.g["zettel_root"] or vim.b["zettel_root"] or "~/documents/notes",
-- TODO zettel_anchor_pattern = regex? -> needs custom creation function in `create_anchor`
} }
end end
@ -28,7 +31,7 @@ end
-- If no date is passed in, returns Zettel anchor for current moment. -- If no date is passed in, returns Zettel anchor for current moment.
function ZK.create_anchor(date) function ZK.create_anchor(date)
local timestamp local timestamp
if pcall(function() timestamp=os.time(date) end) then if pcall(function() timestamp = os.time(date) end) then
return os.date('%y%m%d%H%M', timestamp) return os.date('%y%m%d%H%M', timestamp)
else else
return nil return nil
@ -44,12 +47,12 @@ function ZK.create_link(text, date)
text = "" .. ZK.create_anchor(date) text = "" .. ZK.create_anchor(date)
else else
text = text:lower():gsub(" ", "-") text = text:lower():gsub(" ", "-")
text = "" .. ZK.create_anchor(date) .. o.anchor_separator .. text text = "" .. ZK.create_anchor(date) .. (o.anchor_separator or "_") ..
text
end end
return text .. (o.zettel_extension or ".md") return text .. (o.zettel_extension or ".md")
end end
-- Returns all zettel in path as a -- Returns all zettel in path as a
-- { "anchor" = "path/to/zettel/anchor filename.md" } -- { "anchor" = "path/to/zettel/anchor filename.md" }
-- table. -- table.
@ -63,5 +66,5 @@ return {
zettel_link_create = ZK.zettel_link_create, zettel_link_create = ZK.zettel_link_create,
create_anchor = ZK.create_anchor, create_anchor = ZK.create_anchor,
create_link = ZK.create_link, create_link = ZK.create_link,
get_zettel_list = ZK.get_zettel_list, get_zettel_list = ZK.get_zettel_list
} }

View file

@ -1,17 +1,17 @@
ZK = require'zettelkasten.init' ZK = require 'zettelkasten.init'
Test_date={ year=2019, month=10, day=29, hour=16, min=45 } Test_date = {year = 2019, month = 10, day = 29, hour = 16, min = 45}
describe("Zettelkasten", function() describe("Zettelkasten", function()
before_each(function() before_each(function() ZK.init({g = {}, b = {}}) end)
ZK.init({ g={}, b={} })
end)
describe("anchor creation", function() describe("anchor creation", function()
it("should return zettel anchor from time passed in", function() it("should return zettel anchor from time passed in", function()
assert.same("1910291645", ZK.create_anchor(Test_date)) assert.same("1910291645", ZK.create_anchor(Test_date))
end) end)
it("should return zettel anchor from current moment if no argument passed in", function() it(
"should return zettel anchor from current moment if no argument passed in",
function()
assert.same(os.date('%y%m%d%H%M'), ZK.create_anchor()) assert.same(os.date('%y%m%d%H%M'), ZK.create_anchor())
end) end)
@ -21,32 +21,41 @@ describe("Zettelkasten", function()
end) end)
describe("link creation", function() describe("link creation", function()
it("should return a markdown link with only zettel anchor on no text passed in", function() it(
"should return a markdown link with only zettel anchor on no text passed in",
function()
assert.same("1910291645.md", ZK.create_link(nil, Test_date)) assert.same("1910291645.md", ZK.create_link(nil, Test_date))
end) end)
it("should text to link", function() it("should text to link", function()
assert.same("1910291645_isappended.md", ZK.create_link("isappended", Test_date)) assert.same("1910291645_isappended.md",
ZK.create_link("isappended", Test_date))
end) end)
it("should return lowercased link text", function() it("should return lowercased link text", function()
assert.same("1910291645_yesiamshouting.md", ZK.create_link("YESIAMSHOUTING", Test_date)) assert.same("1910291645_yesiamshouting.md",
ZK.create_link("YESIAMSHOUTING", Test_date))
end) end)
it("should return spaces in text replaced with dashes", function() it("should return spaces in text replaced with dashes", function()
assert.same("1910291645_yes-indeed-a-space.md", ZK.create_link("yes indeed a space", Test_date)) assert.same("1910291645_yes-indeed-a-space.md",
ZK.create_link("yes indeed a space", Test_date))
end) end)
it("should place the contents of g:zettel_anchor_separator variable in link", function() it(
vim = { g = { zettel_anchor_separator = "SEP" }, b = {}} "should place the contents of g:zettel_anchor_separator variable in link",
function()
vim = {g = {zettel_anchor_separator = "SEP"}, b = {}}
ZK.init(vim) ZK.init(vim)
assert.same("1910291645SEParated.md", ZK.create_link("arated", Test_date)) assert.same("1910291645SEParated.md",
ZK.create_link("arated", Test_date))
end) end)
it("should append the filetype set in g:zettel_extension", function() it("should append the filetype set in g:zettel_extension", function()
vim = { g = { zettel_extension = ".something" }, b = {}} vim = {g = {zettel_extension = ".something"}, b = {}}
ZK.init(vim) ZK.init(vim)
assert.same("1910291645_theworld.something", ZK.create_link("theworld", Test_date)) assert.same("1910291645_theworld.something",
ZK.create_link("theworld", Test_date))
end) end)
end) end)

View file

@ -5,9 +5,9 @@ local function isDirectory(ftype)
return false return false
end end
-- TODO transform paths: -- TODO transform paths:
-- * to absolute value (e.g. ~ to home, scandir needs absolute) -- * to absolute value (e.g. ~ to home, scandir needs absolute)
-- * to ensure / at the end (or no /) gets taken into account -- * to ensure / at the end (or no /) gets taken into account
function ls.get_anchors_and_paths(path, recursive) function ls.get_anchors_and_paths(path, recursive)
-- TODO check for duplicates and warn user -- TODO check for duplicates and warn user
local zettel = {} local zettel = {}
@ -20,15 +20,11 @@ function ls.get_anchors_and_paths(path, recursive)
if isDirectory(ftype) and recursive then if isDirectory(ftype) and recursive then
local subdir = ls.get_anchors_and_paths(path .. "/" .. name, true) local subdir = ls.get_anchors_and_paths(path .. "/" .. name, true)
for k, v in pairs(subdir) do for k, v in pairs(subdir) do zettel[tostring(k)] = v end
zettel[tostring(k)] = v
end
end end
local anchor = string.match(name, anchorreg) local anchor = string.match(name, anchorreg)
if anchor then if anchor then zettel[tostring(anchor)] = name end
zettel[tostring(anchor)] = name
end
end end
return zettel return zettel
end end

View file

@ -1,4 +1,4 @@
ZK = require'zettelkasten.init' ZK = require 'zettelkasten.init'
-- these tests, I suppose, only work on unix due to the file structure -- these tests, I suppose, only work on unix due to the file structure
describe("zettel listing", function() describe("zettel listing", function()
@ -15,42 +15,44 @@ describe("zettel listing", function()
return true return true
end end
end, end,
fs_scandir_next = function() return table.remove(files) end fs_scandir_next = function()
return table.remove(files)
end
} }
} }
end end
end) end)
it("should return anchor-keyed table pointing to filename of zettel", function() it("should return anchor-keyed table pointing to filename of zettel",
local file_list = { "1910291645 this-is-a-testfile.md" } function()
local file_list = {"1910291645 this-is-a-testfile.md"}
ZK.init(get_api_mock(file_list)) ZK.init(get_api_mock(file_list))
local expected = { ["1910291645"] = "1910291645 this-is-a-testfile.md", } local expected = {["1910291645"] = "1910291645 this-is-a-testfile.md"}
assert.same(expected, ZK.get_zettel_list("someDir")) assert.same(expected, ZK.get_zettel_list("someDir"))
end) end)
it("should ignore any malformed files", function() it("should ignore any malformed files", function()
local file_list = { local file_list = {
"2010261208 this-should-be-picked-up.md", "2010261208 this-should-be-picked-up.md",
"1910291645 this-is-a-testfile.md", "1910291645 this-is-a-testfile.md", "this-is-not-a-testfile.md",
"this-is-not-a-testfile.md", "1910271456 this-is-wrong-extension.txt", "1812 this-is-ignored.md"
"1910271456 this-is-wrong-extension.txt",
"1812 this-is-ignored.md",
} }
ZK.init(get_api_mock(file_list)) ZK.init(get_api_mock(file_list))
local expected = { local expected = {
["1910291645"] = "1910291645 this-is-a-testfile.md", ["1910291645"] = "1910291645 this-is-a-testfile.md",
["2010261208"] = "2010261208 this-should-be-picked-up.md", ["2010261208"] = "2010261208 this-should-be-picked-up.md"
} }
assert.same(expected, ZK.get_zettel_list("someDir")) assert.same(expected, ZK.get_zettel_list("someDir"))
end) end)
it("should recurse into directories if recursive argument passed in ", function() it("should recurse into directories if recursive argument passed in ",
function()
local files = { local files = {
{ "1910271456 testfile.md", "file" }, {"1910271456 testfile.md", "file"},
{ "more-notes-here", "directory" }, {"more-notes-here", "directory"},
{ "2010261208 another-testfile.md", "file" }, {"2010261208 another-testfile.md", "file"}
} }
local vim_api_mock = { local vim_api_mock = {
g = {}, g = {},
@ -75,18 +77,25 @@ describe("zettel listing", function()
ZK.get_zettel_list("path/to/startingdir", true) ZK.get_zettel_list("path/to/startingdir", true)
assert.spy(vim_api_mock.loop.fs_scandir).was_called(2) assert.spy(vim_api_mock.loop.fs_scandir).was_called(2)
assert.spy(vim_api_mock.loop.fs_scandir).was_called_with("path/to/startingdir/more-notes-here") assert.spy(vim_api_mock.loop.fs_scandir).was_called_with(
"path/to/startingdir/more-notes-here")
end) end)
it("should append all notes found in subdirectories when recursing", function() it("should append all notes found in subdirectories when recursing",
local outer_files = { "subdir", "1234567890 myfile.md", "2345678901 another.md", } function()
local inner_files = { "2222222222 should-be-present.md", "3333333333 should-also-be-present.md" } local outer_files = {
"subdir", "1234567890 myfile.md", "2345678901 another.md"
}
local inner_files = {
"2222222222 should-be-present.md",
"3333333333 should-also-be-present.md"
}
local files = outer_files local files = outer_files
-- assert.is_true("not implemented") -- assert.is_true("not implemented")
local vim_api_mock = { local vim_api_mock = {
g = {}, g = {},
b = {}, b = {},
loop ={ loop = {
fs_scandir = function() fs_scandir = function()
if #files == 0 then return false end if #files == 0 then return false end
return true return true
@ -100,15 +109,31 @@ describe("zettel listing", function()
end end
return fname, ftype return fname, ftype
end end
}} }
}
ZK.init(vim_api_mock) ZK.init(vim_api_mock)
local expected = { local expected = {
["1234567890"] = "1234567890 myfile.md", ["1234567890"] = "1234567890 myfile.md",
["2345678901"] = "2345678901 another.md", ["2345678901"] = "2345678901 another.md",
["2222222222"] = "2222222222 should-be-present.md", ["2222222222"] = "2222222222 should-be-present.md",
["3333333333"] = "3333333333 should-also-be-present.md", ["3333333333"] = "3333333333 should-also-be-present.md"
} }
assert.same(expected, ZK.get_zettel_list('mydirectory', true)) assert.same(expected, ZK.get_zettel_list('mydirectory', true))
end) end)
it("should adhere to the zettel extension defined in options", function()
local file_list = {"1910291645 myfile.wiki", "2345678901 another.wiki"}
local vim = get_api_mock(file_list)
vim.g['zettel_extension'] = '.wiki'
ZK.init(vim)
local expected = {
["1910291645"] = "1910291645 myfile.wiki",
["2345678901"] = "2345678901 another.wiki"
}
assert.same(expected, ZK.get_zettel_list('mydirectory'))
end)
end) end)