summaryrefslogtreecommitdiff
path: root/xmake/plugins/project/vstudio/impl/vsfile.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2016-08-06 16:15:31 +0800
committerruki <[email protected]>2016-08-06 16:15:31 +0800
commitd9f5c18a8f80dad25589f8fe9992ecfcc469e75d (patch)
tree4907c0cbf57dca6913a1650e5fa7811137aa5e25 /xmake/plugins/project/vstudio/impl/vsfile.lua
parentce3b9ada065d09d2d771061b20f07fc1d661c648 (diff)
add vsfile for vstduio plugin
Diffstat (limited to 'xmake/plugins/project/vstudio/impl/vsfile.lua')
-rwxr-xr-xxmake/plugins/project/vstudio/impl/vsfile.lua107
1 files changed, 107 insertions, 0 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vsfile.lua b/xmake/plugins/project/vstudio/impl/vsfile.lua
new file mode 100755
index 000000000..d478c33f6
--- /dev/null
+++ b/xmake/plugins/project/vstudio/impl/vsfile.lua
@@ -0,0 +1,107 @@
+--!The Make-like Build Utility based on Lua
+--
+-- XMake is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU Lesser General Public License as published by
+-- the Free Software Foundation; either version 2.1 of the License, or
+-- (at your option) any later version.
+--
+-- XMake is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with XMake;
+-- If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a>
+--
+-- Copyright (C) 2015 - 2016, ruki All rights reserved.
+--
+-- @author ruki
+-- @file vsfile.lua
+--
+
+-- print file
+function _print(self, ...)
+
+ -- print indent
+ for i = 1, self._indent do
+ self:_write(" ")
+ end
+
+ -- print it
+ self:_print(...)
+end
+
+-- printf file
+function _printf(self, ...)
+
+ -- print indent
+ for i = 1, self._indent do
+ self:_write(" ")
+ end
+
+ -- printf it
+ self:_printf(...)
+end
+
+-- write file
+function _write(self, ...)
+
+ -- print indent
+ for i = 1, self._indent do
+ self:_write(" ")
+ end
+
+ -- write it
+ self:_write(...)
+end
+
+-- enter and print file
+function _enter(self, ...)
+
+ -- print it
+ self:print(...)
+
+ -- increase indent
+ self._indent = self._indent + 4
+end
+
+-- leave and print file
+function _leave(self, ...)
+
+ -- decrease indent
+ if self._indent >= 4 then
+ self._indent = self._indent - 4
+ else
+ self._indent = 0
+ end
+
+ -- print it
+ self:print(...)
+end
+
+-- open file
+function open(filepath, mode)
+
+ -- open it
+ local file = io.open(filepath, mode)
+
+ -- hook print, printf and write
+ file._print = file.print
+ file._printf = file.printf
+ file._write = file.write
+ file.print = _print
+ file.printf = _printf
+ file.write = _write
+
+ -- add enter and leave interfaces
+ file.enter = _enter
+ file.leave = _leave
+
+ -- init indent
+ file._indent = 0
+
+ -- ok?
+ return file
+end
+