diff --git a/emacs.el b/emacs.el index 362e14b..3d54bf3 100644 --- a/emacs.el +++ b/emacs.el @@ -100,6 +100,7 @@ found, otherwise returns nil." gitignore-mode adoc-mode malabar-mode + ;; ack color-moccur ggtags @@ -120,6 +121,8 @@ found, otherwise returns nil." pkgbuild-mode minibuffer-line which-key + ;; I think this works in place of my autosave lib + super-save scala-mode ;;ensime diff --git a/micro/init.lua b/micro/init.lua index 60f3fd3..7826895 100644 --- a/micro/init.lua +++ b/micro/init.lua @@ -2,6 +2,8 @@ local function getProperties(fullpath) -- TODO: Avoid command injection vulnerability + -- For example, following command will create file b.txt + -- $ micro "a.txt'; touch 'b.txt" local file = io.popen("editorconfig '" .. fullpath .. "'", "r") local output = file:read("*all") file:close() @@ -20,16 +22,56 @@ local function getProperties(fullpath) return properties end +local function setIndentation(properties, view) + local indent_size_str = properties["indent_size"] + local tab_width_str = properties["tab_width"] + local indent_style = properties["indent_style"] + + local indent_size = tonumber(indent_size_str, 10) + if indent_size ~= nil then + messenger:Message("set tabsize to " .. indent_size_str) + SetLocalOption("tabsize", indent_size, view) + end + + if indent_style == "space" then + -- messenger:Message("indent_style to space") + SetLocalOption("tabstospaces", "on", view) + elseif indent_style == "tab" then + -- messenger:Message("indent_style to tab") + SetLocalOption("tabstospaces", "off", view) + else + -- messenger:Message("unknown indent_style") + end +end + function onViewOpen(view) -- Is this portable? (work on windows?) local pwd = os.getenv("PWD") local filename = view.Buf.Path -- prop, names = ec.parse(filepath) local fullpath = JoinPaths(pwd, filename) - local out = getProperties(fullpath) - messenger:Message("edconf: " .. out["indent_style"]) + local properties = getProperties(fullpath) + if properties["indent_style"] == nil then + messenger:Message("edconf: nil") + else + messenger:Message("edconf: " .. properties["indent_style"]) + end + + -- SetLocalOption("tabsize", 4, view) + -- SetLocalOption("tabstospaces", "on", view) + setIndentation(properties, view) + -- Currently micro does not support changing coding-systems + -- (Always use utf-8 with LF?) + -- setCodingSystem(properties, view) + -- `ruler' is not what we want! + -- setMaxLineLength(properties, view) + -- setTrimTrailingWhitespace(properties, view) + -- We have eofnewline! Use this! + -- setInsertFinalNewline(properties, view) end function onSave(view) messenger:Message("Saved!") end + +-- function getindentstyle()