Merge branch 'master' into dev
This commit is contained in:
commit
59fbf9cfc0
|
@ -7,17 +7,9 @@ local LogView = require "core.logview"
|
||||||
|
|
||||||
local fullscreen = false
|
local fullscreen = false
|
||||||
|
|
||||||
local function home_encode_list(paths)
|
|
||||||
local t = {}
|
|
||||||
for i = 1, #paths do
|
|
||||||
t[i] = common.home_encode(paths[i])
|
|
||||||
end
|
|
||||||
return t
|
|
||||||
end
|
|
||||||
|
|
||||||
local function suggest_directory(text)
|
local function suggest_directory(text)
|
||||||
text = common.home_expand(text)
|
text = common.home_expand(text)
|
||||||
return home_encode_list(text == "" and core.recent_projects or common.dir_path_suggest(text))
|
return common.home_encode_list(text == "" and core.recent_projects or common.dir_path_suggest(text))
|
||||||
end
|
end
|
||||||
|
|
||||||
command.add(nil, {
|
command.add(nil, {
|
||||||
|
@ -95,7 +87,7 @@ command.add(nil, {
|
||||||
core.command_view:enter("Open File", function(text)
|
core.command_view:enter("Open File", function(text)
|
||||||
core.root_view:open_doc(core.open_doc(common.home_expand(text)))
|
core.root_view:open_doc(core.open_doc(common.home_expand(text)))
|
||||||
end, function (text)
|
end, function (text)
|
||||||
return home_encode_list(common.path_suggest(common.home_expand(text)))
|
return common.home_encode_list(common.path_suggest(common.home_expand(text)))
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
@ -107,12 +99,6 @@ command.add(nil, {
|
||||||
["core:open-user-module"] = function()
|
["core:open-user-module"] = function()
|
||||||
local user_module_doc = core.open_doc(USERDIR .. "/init.lua")
|
local user_module_doc = core.open_doc(USERDIR .. "/init.lua")
|
||||||
if not user_module_doc then return end
|
if not user_module_doc then return end
|
||||||
local doc_save = user_module_doc.save
|
|
||||||
user_module_doc.save = function(self)
|
|
||||||
doc_save(self)
|
|
||||||
core.reload_module("core.style")
|
|
||||||
core.load_user_directory()
|
|
||||||
end
|
|
||||||
core.root_view:open_doc(user_module_doc)
|
core.root_view:open_doc(user_module_doc)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
@ -184,7 +170,7 @@ command.add(nil, {
|
||||||
end
|
end
|
||||||
end, function(text)
|
end, function(text)
|
||||||
text = common.home_expand(text)
|
text = common.home_expand(text)
|
||||||
return home_encode_list(common.dir_list_suggest(text, dir_list))
|
return common.home_encode_list(common.dir_list_suggest(text, dir_list))
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
|
@ -67,6 +67,7 @@ end
|
||||||
|
|
||||||
local function save(filename)
|
local function save(filename)
|
||||||
doc():save(filename)
|
doc():save(filename)
|
||||||
|
core.on_doc_save(filename)
|
||||||
core.log("Saved \"%s\"", doc().filename)
|
core.log("Saved \"%s\"", doc().filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -297,8 +298,10 @@ local commands = {
|
||||||
core.command_view:set_text(doc().filename)
|
core.command_view:set_text(doc().filename)
|
||||||
end
|
end
|
||||||
core.command_view:enter("Save As", function(filename)
|
core.command_view:enter("Save As", function(filename)
|
||||||
save(filename)
|
save(common.home_expand(filename))
|
||||||
end, common.path_suggest)
|
end, function (text)
|
||||||
|
return common.home_encode_list(common.path_suggest(common.home_expand(text)))
|
||||||
|
end)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
["doc:save"] = function()
|
["doc:save"] = function()
|
||||||
|
|
|
@ -214,9 +214,28 @@ function common.home_encode(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function common.home_encode_list(paths)
|
||||||
|
local t = {}
|
||||||
|
for i = 1, #paths do
|
||||||
|
t[i] = common.home_encode(paths[i])
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function common.home_expand(text)
|
function common.home_expand(text)
|
||||||
return HOME and text:gsub("^~", HOME) or text
|
return HOME and text:gsub("^~", HOME) or text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function common.normalize_path(filename)
|
||||||
|
if PATHSEP == '\\' then
|
||||||
|
filename = filename:gsub('[/\\]', '\\')
|
||||||
|
local drive, rem = filename:match('^([a-zA-Z])(:.*)')
|
||||||
|
return drive and drive:upper() .. rem or filename
|
||||||
|
end
|
||||||
|
return filename
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
return common
|
return common
|
||||||
|
|
|
@ -67,6 +67,7 @@ end
|
||||||
|
|
||||||
function Doc:load(filename)
|
function Doc:load(filename)
|
||||||
local fp = assert( io.open(filename, "rb") )
|
local fp = assert( io.open(filename, "rb") )
|
||||||
|
filename = common.normalize_path(filename)
|
||||||
self:reset()
|
self:reset()
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.lines = {}
|
self.lines = {}
|
||||||
|
@ -93,7 +94,7 @@ function Doc:save(filename)
|
||||||
fp:write(line)
|
fp:write(line)
|
||||||
end
|
end
|
||||||
fp:close()
|
fp:close()
|
||||||
self.filename = filename or self.filename
|
self.filename = common.normalize_path(filename or self.filename)
|
||||||
self:reset_syntax()
|
self:reset_syntax()
|
||||||
self:clean()
|
self:clean()
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,7 @@ local keymap
|
||||||
local RootView
|
local RootView
|
||||||
local StatusView
|
local StatusView
|
||||||
local CommandView
|
local CommandView
|
||||||
|
local DocView
|
||||||
local Doc
|
local Doc
|
||||||
|
|
||||||
local core = {}
|
local core = {}
|
||||||
|
@ -346,6 +347,7 @@ function core.init()
|
||||||
RootView = require "core.rootview"
|
RootView = require "core.rootview"
|
||||||
StatusView = require "core.statusview"
|
StatusView = require "core.statusview"
|
||||||
CommandView = require "core.commandview"
|
CommandView = require "core.commandview"
|
||||||
|
DocView = require "core.docview"
|
||||||
Doc = require "core.doc"
|
Doc = require "core.doc"
|
||||||
|
|
||||||
do
|
do
|
||||||
|
@ -473,6 +475,19 @@ do
|
||||||
core.on_enter_project = do_nothing
|
core.on_enter_project = do_nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
core.doc_save_hooks = {}
|
||||||
|
function core.add_save_hook(fn)
|
||||||
|
core.doc_save_hooks[#core.doc_save_hooks + 1] = fn
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function core.on_doc_save(filename)
|
||||||
|
for _, hook in ipairs(core.doc_save_hooks) do
|
||||||
|
hook(filename)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function quit_with_function(quit_fn, force)
|
local function quit_with_function(quit_fn, force)
|
||||||
if force then
|
if force then
|
||||||
delete_temp_files()
|
delete_temp_files()
|
||||||
|
@ -709,6 +724,7 @@ function core.step()
|
||||||
local did_keymap = false
|
local did_keymap = false
|
||||||
local mouse_moved = false
|
local mouse_moved = false
|
||||||
local mouse = { x = 0, y = 0, dx = 0, dy = 0 }
|
local mouse = { x = 0, y = 0, dx = 0, dy = 0 }
|
||||||
|
|
||||||
|
|
||||||
for type, a,b,c,d in system.poll_event do
|
for type, a,b,c,d in system.poll_event do
|
||||||
if type == "mousemoved" then
|
if type == "mousemoved" then
|
||||||
|
@ -746,7 +762,7 @@ function core.step()
|
||||||
|
|
||||||
-- update window title
|
-- update window title
|
||||||
local name = core.active_view:get_name()
|
local name = core.active_view:get_name()
|
||||||
local title = (name ~= "---") and (name .. " - lite") or "lite"
|
local title = (name ~= "---") and ( (core.active_view:is(DocView) and core.active_view.doc.filename or name) .. " - lite") or "lite"
|
||||||
if title ~= core.window_title then
|
if title ~= core.window_title then
|
||||||
system.set_window_title(title)
|
system.set_window_title(title)
|
||||||
core.window_title = title
|
core.window_title = title
|
||||||
|
@ -839,4 +855,13 @@ function core.on_error(err)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
core.add_save_hook(function(filename)
|
||||||
|
local doc = core.active_view.doc
|
||||||
|
if doc and doc:is(Doc) and doc.filename == common.normalize_path(USERDIR .. PATHSEP .. "init.lua") then
|
||||||
|
core.reload_module("core.style")
|
||||||
|
core.load_user_directory()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
return core
|
return core
|
||||||
|
|
|
@ -28,7 +28,7 @@ foreach data_module : ['core', 'fonts', 'plugins', 'colors']
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
lite_link_args = []
|
lite_link_args = []
|
||||||
if get_option('buildtype') == 'release'
|
if cc.get_id() == 'gcc' and get_option('buildtype') == 'release'
|
||||||
lite_link_args += ['-static-libgcc', '-static-libstdc++']
|
lite_link_args += ['-static-libgcc', '-static-libstdc++']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue