vim
This commit is contained in:
parent
5de10627a8
commit
681e07edcd
63
vim/persistence.lua
Normal file
63
vim/persistence.lua
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
local constants = require("themery.constants")
|
||||||
|
local config = require("themery.config")
|
||||||
|
local utils = require("themery.utils")
|
||||||
|
|
||||||
|
local function saveTheme(theme)
|
||||||
|
local configFilePath = config.getSettings().themeConfigFile
|
||||||
|
local file = io.open(configFilePath , "r")
|
||||||
|
|
||||||
|
if file == nil then
|
||||||
|
print(constants.MSG_ERROR.READ_FILE..": "..configFilePath)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local content = file:read("*all")
|
||||||
|
|
||||||
|
local start_marker = "-- Themery block"
|
||||||
|
local end_marker = "-- end themery block"
|
||||||
|
|
||||||
|
local start_pos, end_pos = content:find(start_marker .. "\n(.+)\n" .. end_marker)
|
||||||
|
|
||||||
|
if not start_pos or not end_pos then
|
||||||
|
print(constants.MSG_ERROR.NO_MARKETS)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local beforeCode = ""
|
||||||
|
local afterCode = ""
|
||||||
|
|
||||||
|
if theme.before then
|
||||||
|
beforeCode = utils.trimStartSpaces(theme.before).."\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
if theme.after then
|
||||||
|
afterCode = "\n"..utils.trimStartSpaces(theme.after)
|
||||||
|
end
|
||||||
|
|
||||||
|
local configToWrite = "-- This block will be replaced by Themery.\n"
|
||||||
|
configToWrite = configToWrite..beforeCode
|
||||||
|
configToWrite = configToWrite.."vim.cmd(\"colorscheme "
|
||||||
|
configToWrite = configToWrite..theme.colorscheme.."\")\n"
|
||||||
|
configToWrite = configToWrite..afterCode
|
||||||
|
|
||||||
|
local replaced_content = content:sub(1, start_pos-1)
|
||||||
|
..start_marker.."\n"
|
||||||
|
..configToWrite
|
||||||
|
..end_marker
|
||||||
|
..content:sub(end_pos+1)
|
||||||
|
|
||||||
|
local outfile = io.open(configFilePath, "w")
|
||||||
|
|
||||||
|
if outfile == nil then
|
||||||
|
print(constants.MSG_ERROR.WRITE_FILE..": "..configFilePath)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
outfile:write(replaced_content)
|
||||||
|
outfile:close()
|
||||||
|
print(constants.MSG_INFO.THEME_SAVED)
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
saveTheme = saveTheme,
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user