mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2026-09-14 11:06:16 +05:00
aef
This commit is contained in:
parent
d989aa3b08
commit
c441be1ab7
@ -378,7 +378,7 @@
|
||||
name="lib/compressor.lua",
|
||||
url="IgorTimofeev/OpenComputers/master/lib/compressor.lua",
|
||||
type="Library",
|
||||
version=1.05,
|
||||
version=1.06,
|
||||
},
|
||||
{
|
||||
name="lib/xmlParser.lua",
|
||||
|
||||
@ -4665,7 +4665,7 @@ return GUI
|
||||
|
||||
|
||||
|
||||
Flib/MineOSCore.lua…þ
|
||||
Flib/MineOSCore.lua„ì
|
||||
---------------------------------------------- Libraries ------------------------------------------------------------------------
|
||||
|
||||
local component = require("component")
|
||||
@ -4961,7 +4961,7 @@ function MineOSCore.analyzeIconFormat(iconObject)
|
||||
elseif iconObject.format == ".pic" or iconObject.format == ".png" then
|
||||
iconObject.iconImage.image = MineOSCore.icons.image
|
||||
iconObject.launch = function()
|
||||
MineOSCore.safeLaunch(MineOSCore.paths.applications .. "Viewer.app/Viewer.lua", "open", iconObject.path)
|
||||
MineOSCore.safeLaunch(MineOSCore.paths.applications .. "Photoshop.app/Photoshop.lua", "open", iconObject.path)
|
||||
end
|
||||
elseif iconObject.format == ".pkg" then
|
||||
iconObject.iconImage.image = MineOSCore.icons.archive
|
||||
@ -5335,7 +5335,6 @@ function MineOSCore.iconRightClick(icon, eventData)
|
||||
):show()
|
||||
elseif icon.format == ".pic" then
|
||||
action = GUI.contextMenu(eventData[3], eventData[4],
|
||||
{MineOSCore.localization.contextMenuEditInPhotoshop},
|
||||
{MineOSCore.localization.contextMenuSetAsWallpaper},
|
||||
"-",
|
||||
{MineOSCore.localization.contextMenuCut},
|
||||
@ -5393,9 +5392,6 @@ function MineOSCore.iconRightClick(icon, eventData)
|
||||
elseif action == MineOSCore.localization.contextMenuShowContainingFolder then
|
||||
computer.pushSignal("MineOSCore", "changeWorkpath", MineOSCore.getFilePath(icon.shortcutPath))
|
||||
computer.pushSignal("MineOSCore", "updateFileList")
|
||||
elseif action == MineOSCore.localization.contextMenuEditInPhotoshop then
|
||||
MineOSCore.safeLaunch("MineOS/Applications/Photoshop.app/Photoshop.lua", "open", icon.path)
|
||||
computer.pushSignal("MineOSCore", "updateFileList")
|
||||
elseif action == MineOSCore.localization.contextMenuAddToFavourites then
|
||||
computer.pushSignal("finderFavouriteAdded", icon.path)
|
||||
elseif action == MineOSCore.localization.contextMenuShowPackageContent then
|
||||
@ -12759,7 +12755,125 @@ return image
|
||||
|
||||
|
||||
|
||||
F
|
||||
Flib/internet.lua
|
||||
tlocal buffer = require("buffer")
|
||||
local component = require("component")
|
||||
local event = require("event")
|
||||
|
||||
local internet = {}
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
function internet.request(url, data, headers)
|
||||
checkArg(1, url, "string")
|
||||
checkArg(2, data, "string", "table", "nil")
|
||||
checkArg(3, headers, "table", "nil")
|
||||
|
||||
local inet = component.internet
|
||||
if not inet then
|
||||
error("no primary internet card found", 2)
|
||||
end
|
||||
|
||||
local post
|
||||
if type(data) == "string" then
|
||||
post = data
|
||||
elseif type(data) == "table" then
|
||||
for k, v in pairs(data) do
|
||||
post = post and (post .. "&") or ""
|
||||
post = post .. tostring(k) .. "=" .. tostring(v)
|
||||
end
|
||||
end
|
||||
|
||||
local request, reason = inet.request(url, post, headers)
|
||||
if not request then
|
||||
error(reason, 2)
|
||||
end
|
||||
|
||||
return function()
|
||||
while true do
|
||||
local data, reason = request.read()
|
||||
if not data then
|
||||
request.close()
|
||||
if reason then
|
||||
error(reason, 2)
|
||||
else
|
||||
return nil -- eof
|
||||
end
|
||||
elseif #data > 0 then
|
||||
return data
|
||||
end
|
||||
-- else: no data, block
|
||||
os.sleep(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
local socketStream = {}
|
||||
|
||||
function socketStream:close()
|
||||
if self.socket then
|
||||
self.socket.close()
|
||||
self.socket = nil
|
||||
end
|
||||
end
|
||||
|
||||
function socketStream:seek()
|
||||
return nil, "bad file descriptor"
|
||||
end
|
||||
|
||||
function socketStream:read(n)
|
||||
if not self.socket then
|
||||
return nil, "connection is closed"
|
||||
end
|
||||
return self.socket.read(n)
|
||||
end
|
||||
|
||||
function socketStream:write(value)
|
||||
if not self.socket then
|
||||
return nil, "connection is closed"
|
||||
end
|
||||
while #value > 0 do
|
||||
local written, reason = self.socket.write(value)
|
||||
if not written then
|
||||
return nil, reason
|
||||
end
|
||||
value = string.sub(value, written + 1)
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function internet.socket(address, port)
|
||||
checkArg(1, address, "string")
|
||||
checkArg(2, port, "number", "nil")
|
||||
if port then
|
||||
address = address .. ":" .. port
|
||||
end
|
||||
|
||||
local inet = component.internet
|
||||
local socket, reason = inet.connect(address)
|
||||
if not socket then
|
||||
return nil, reason
|
||||
end
|
||||
|
||||
local stream = {inet = inet, socket = socket}
|
||||
local metatable = {__index = socketStream,
|
||||
__metatable = "socketstream"}
|
||||
return setmetatable(stream, metatable)
|
||||
end
|
||||
|
||||
function internet.open(address, port)
|
||||
local stream, reason = internet.socket(address, port)
|
||||
if not stream then
|
||||
return nil, reason
|
||||
end
|
||||
return buffer.new("rwb", stream)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
return internetF
|
||||
lib/io.lua klocal io = {}
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
@ -23007,7 +23121,159 @@ if not result then
|
||||
io.stderr:write((reason or "unknown error")..'\n')
|
||||
return 1
|
||||
end
|
||||
Fbin/primary.lua×local component = require("component")
|
||||
Fbin/pastebin.luaŠ--[[ This program allows downloading and uploading from and to pastebin.com.
|
||||
Authors: Sangar, Vexatos ]]
|
||||
local component = require("component")
|
||||
local fs = require("filesystem")
|
||||
local internet = require("internet")
|
||||
local shell = require("shell")
|
||||
|
||||
if not component.isAvailable("internet") then
|
||||
io.stderr:write("This program requires an internet card to run.")
|
||||
return
|
||||
end
|
||||
|
||||
local args, options = shell.parse(...)
|
||||
|
||||
-- This gets code from the website and stores it in the specified file.
|
||||
local function get(pasteId, filename)
|
||||
local f, reason = io.open(filename, "w")
|
||||
if not f then
|
||||
io.stderr:write("Failed opening file for writing: " .. reason)
|
||||
return
|
||||
end
|
||||
|
||||
io.write("Downloading from pastebin.com... ")
|
||||
local url = "http://pastebin.com/raw.php?i=" .. pasteId
|
||||
local result, response = pcall(internet.request, url)
|
||||
if result then
|
||||
io.write("success.\n")
|
||||
for chunk in response do
|
||||
if not options.k then
|
||||
string.gsub(chunk, "\r\n", "\n")
|
||||
end
|
||||
f:write(chunk)
|
||||
end
|
||||
|
||||
f:close()
|
||||
io.write("Saved data to " .. filename .. "\n")
|
||||
else
|
||||
io.write("failed.\n")
|
||||
f:close()
|
||||
fs.remove(filename)
|
||||
io.stderr:write("HTTP request failed: " .. response .. "\n")
|
||||
end
|
||||
end
|
||||
|
||||
-- This makes a string safe for being used in a URL.
|
||||
function encode(code)
|
||||
if code then
|
||||
code = string.gsub(code, "([^%w ])", function (c)
|
||||
return string.format("%%%02X", string.byte(c))
|
||||
end)
|
||||
code = string.gsub(code, " ", "+")
|
||||
end
|
||||
return code
|
||||
end
|
||||
|
||||
-- This stores the program in a temporary file, which it will
|
||||
-- delete after the program was executed.
|
||||
function run(pasteId, ...)
|
||||
local tmpFile = os.tmpname()
|
||||
get(pasteId, tmpFile)
|
||||
io.write("Running...\n")
|
||||
|
||||
local success, reason = shell.execute(tmpFile, nil, ...)
|
||||
if not success then
|
||||
io.stderr:write(reason)
|
||||
end
|
||||
fs.remove(tmpFile)
|
||||
end
|
||||
|
||||
-- Uploads the specified file as a new paste to pastebin.com.
|
||||
function put(path)
|
||||
local config = {}
|
||||
local configFile = loadfile("/etc/pastebin.conf", "t", config)
|
||||
if configFile then
|
||||
local result, reason = pcall(configFile)
|
||||
if not result then
|
||||
io.stderr:write("Failed loading config: " .. reason)
|
||||
end
|
||||
end
|
||||
config.key = config.key or "fd92bd40a84c127eeb6804b146793c97"
|
||||
local file, reason = io.open(path, "r")
|
||||
|
||||
if not file then
|
||||
io.stderr:write("Failed opening file for reading: " .. reason)
|
||||
return
|
||||
end
|
||||
|
||||
local data = file:read("*a")
|
||||
file:close()
|
||||
|
||||
io.write("Uploading to pastebin.com... ")
|
||||
local result, response = pcall(internet.request,
|
||||
"http://pastebin.com/api/api_post.php",
|
||||
"api_option=paste&" ..
|
||||
"api_dev_key=" .. config.key .. "&" ..
|
||||
"api_paste_format=lua&" ..
|
||||
"api_paste_expire_date=N&" ..
|
||||
"api_paste_name=" .. encode(fs.name(path)) .. "&" ..
|
||||
"api_paste_code=" .. encode(data))
|
||||
|
||||
if result then
|
||||
local info = ""
|
||||
for chunk in response do
|
||||
info = info .. chunk
|
||||
end
|
||||
if string.match(info, "^Bad API request, ") then
|
||||
io.write("failed.\n")
|
||||
io.write(info)
|
||||
else
|
||||
io.write("success.\n")
|
||||
local pasteId = string.match(info, "[^/]+$")
|
||||
io.write("Uploaded as " .. info .. "\n")
|
||||
io.write('Run "pastebin get ' .. pasteId .. '" to download anywhere.')
|
||||
end
|
||||
else
|
||||
io.write("failed.\n")
|
||||
io.stderr:write(response)
|
||||
end
|
||||
end
|
||||
|
||||
local command = args[1]
|
||||
if command == "put" then
|
||||
if #args == 2 then
|
||||
put(shell.resolve(args[2]))
|
||||
return
|
||||
end
|
||||
elseif command == "get" then
|
||||
if #args == 3 then
|
||||
local path = shell.resolve(args[3])
|
||||
if fs.exists(path) then
|
||||
if not options.f or not os.remove(path) then
|
||||
io.stderr:write("file already exists")
|
||||
return
|
||||
end
|
||||
end
|
||||
get(args[2], path)
|
||||
return
|
||||
end
|
||||
elseif command == "run" then
|
||||
if #args >= 2 then
|
||||
run(args[2], table.unpack(args, 3))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- If we come here there was some invalid input.
|
||||
io.write("Usages:\n")
|
||||
io.write("pastebin put [-f] <file>\n")
|
||||
io.write("pastebin get [-f] <id> <file>\n")
|
||||
io.write("pastebin run [-f] <id> [<arguments...>]\n")
|
||||
io.write(" -f: Force overwriting existing files.\n")
|
||||
io.write(" -k: keep line endings as-is (will convert\n")
|
||||
io.write(" Windows line endings to Unix otherwise).")Fbin/primary.lua×local component = require("component")
|
||||
local shell = require("shell")
|
||||
|
||||
local args = shell.parse(...)
|
||||
@ -23950,6 +24216,121 @@ if not computer.removeUser(args[1]) then
|
||||
io.stderr:write("no such user\n")
|
||||
return 1
|
||||
end
|
||||
Fbin/wget.lua<0B>local component = require("component")
|
||||
local fs = require("filesystem")
|
||||
local internet = require("internet")
|
||||
local shell = require("shell")
|
||||
local text = require("text")
|
||||
|
||||
if not component.isAvailable("internet") then
|
||||
io.stderr:write("This program requires an internet card to run.")
|
||||
return
|
||||
end
|
||||
|
||||
local args, options = shell.parse(...)
|
||||
options.q = options.q or options.Q
|
||||
|
||||
if #args < 1 then
|
||||
io.write("Usage: wget [-fq] <url> [<filename>]\n")
|
||||
io.write(" -f: Force overwriting existing files.\n")
|
||||
io.write(" -q: Quiet mode - no status messages.\n")
|
||||
io.write(" -Q: Superquiet mode - no error messages.")
|
||||
return
|
||||
end
|
||||
|
||||
local url = text.trim(args[1])
|
||||
local filename = args[2]
|
||||
if not filename then
|
||||
filename = url
|
||||
local index = string.find(filename, "/[^/]*$")
|
||||
if index then
|
||||
filename = string.sub(filename, index + 1)
|
||||
end
|
||||
index = string.find(filename, "?", 1, true)
|
||||
if index then
|
||||
filename = string.sub(filename, 1, index - 1)
|
||||
end
|
||||
end
|
||||
filename = text.trim(filename)
|
||||
if filename == "" then
|
||||
if not options.Q then
|
||||
io.stderr:write("could not infer filename, please specify one")
|
||||
end
|
||||
return nil, "missing target filename" -- for programs using wget as a function
|
||||
end
|
||||
filename = shell.resolve(filename)
|
||||
|
||||
local preexisted
|
||||
if fs.exists(filename) then
|
||||
preexisted = true
|
||||
if not options.f then
|
||||
if not options.Q then
|
||||
io.stderr:write("file already exists")
|
||||
end
|
||||
return nil, "file already exists" -- for programs using wget as a function
|
||||
end
|
||||
end
|
||||
|
||||
local f, reason = io.open(filename, "a")
|
||||
if not f then
|
||||
if not options.Q then
|
||||
io.stderr:write("failed opening file for writing: " .. reason)
|
||||
end
|
||||
return nil, "failed opening file for writing: " .. reason -- for programs using wget as a function
|
||||
end
|
||||
f:close()
|
||||
f = nil
|
||||
|
||||
if not options.q then
|
||||
io.write("Downloading... ")
|
||||
end
|
||||
local result, response = pcall(internet.request, url)
|
||||
if result then
|
||||
local result, reason = pcall(function()
|
||||
for chunk in response do
|
||||
if not f then
|
||||
f, reason = io.open(filename, "wb")
|
||||
assert(f, "failed opening file for writing: " .. tostring(reason))
|
||||
end
|
||||
f:write(chunk)
|
||||
end
|
||||
end)
|
||||
if not result then
|
||||
if not options.q then
|
||||
io.stderr:write("failed.\n")
|
||||
end
|
||||
if f then
|
||||
f:close()
|
||||
if not preexisted then
|
||||
fs.remove(filename)
|
||||
end
|
||||
end
|
||||
if not options.Q then
|
||||
io.stderr:write("HTTP request failed: " .. reason .. "\n")
|
||||
end
|
||||
return nil, reason -- for programs using wget as a function
|
||||
end
|
||||
if not options.q then
|
||||
io.write("success.\n")
|
||||
end
|
||||
|
||||
if f then
|
||||
f:close()
|
||||
end
|
||||
|
||||
if not options.q then
|
||||
io.write("Saved data to " .. filename .. "\n")
|
||||
end
|
||||
else
|
||||
if not options.q then
|
||||
io.write("failed.\n")
|
||||
end
|
||||
if not options.Q then
|
||||
io.stderr:write("HTTP request failed: " .. response .. "\n")
|
||||
end
|
||||
return nil, response -- for programs using wget as a function
|
||||
end
|
||||
return true -- for programs using wget as a function
|
||||
F
bin/which.luaàlocal shell = require("shell")
|
||||
|
||||
local args = shell.parse(...)
|
||||
@ -24481,7 +24862,29 @@ EXAMPLES
|
||||
Renames file `a` to `b`.
|
||||
|
||||
mv /home/a /var/b
|
||||
Moves file from `/home/a` to `/var/b`.Fusr/man/primary NAME
|
||||
Moves file from `/home/a` to `/var/b`.Fusr/man/pastebin<02>NAME
|
||||
pastebin - download and upload programs from and to pastebin
|
||||
|
||||
SYNOPSIS
|
||||
pastebin get PASTID FILE
|
||||
pastebin put FILE
|
||||
pastebin run PASTEID [ARGUMENT]...
|
||||
|
||||
DESCRIPTION
|
||||
The pastebin program allows downloading programs from pastebin, identified by their paste ID. I can also be used to upload programs to pastebin.
|
||||
|
||||
The pastebin program requires an internet card and internet access to be enabled in the mod's configuration.
|
||||
|
||||
OPTIONS
|
||||
-f
|
||||
do not prompt before overwriting
|
||||
|
||||
EXAMPLES
|
||||
pastebin get AbCdEfGh test
|
||||
Downloads the paste with ID `AbCdEfGh` and writes it to file `test`.
|
||||
|
||||
pastebin put prog.lua
|
||||
Uploads the program `prog.lua` to pastebin.Fusr/man/primary NAME
|
||||
primary - get or set primary components
|
||||
|
||||
SYNOPSIS
|
||||
@ -24760,7 +25163,29 @@ DESCRIPTION
|
||||
|
||||
EXAMPLES
|
||||
userdel Steve
|
||||
Removes the player named `Steve` from the userlist.F
usr/man/which NAME
|
||||
Removes the player named `Steve` from the userlist.Fusr/man/wgetUNAME
|
||||
wget - download files via http
|
||||
|
||||
SYNOPSIS
|
||||
wget URL [FILE]
|
||||
|
||||
DESCRIPTION
|
||||
The wget program allows downloading programs from the interwebs, given the URL to download from.
|
||||
|
||||
The wget program requires an internet card and internet access to be enabled in the mod's configuration.
|
||||
|
||||
OPTIONS
|
||||
-f
|
||||
do not prompt before overwriting
|
||||
-q
|
||||
only print errors, no status messages
|
||||
|
||||
EXAMPLES
|
||||
wget http://example.com/data.zip
|
||||
Downloads the file `data.zip` and saves it as `data.zip`.
|
||||
|
||||
wget http://example.com/data.zip blah.zip
|
||||
Downloads the file `data.zip` and saves it as `blah.zip`.F
usr/man/which NAME
|
||||
which - locate a command
|
||||
|
||||
SYNOPSIS
|
||||
@ -24871,7 +25296,105 @@ alias ..="cd .."
|
||||
alias df="df -h"
|
||||
|
||||
alias grep="grep --color"
|
||||
Detc/Fetc/filesystem.cfgautorun=trueFetc/motdp#!/bin/lua
|
||||
Detc/Fetc/edit.cfgkeybinds={
|
||||
["findnext"] = {
|
||||
[1] = {
|
||||
[1] = "control",
|
||||
[2] = "g"
|
||||
},
|
||||
[2] = {
|
||||
[1] = "control",
|
||||
[2] = "n"
|
||||
},
|
||||
[3] = {
|
||||
[1] = "f3"
|
||||
}
|
||||
},
|
||||
["deleteLine"] = {
|
||||
[1] = {
|
||||
[1] = "control",
|
||||
[2] = "delete"
|
||||
},
|
||||
[2] = {
|
||||
[1] = "shift",
|
||||
[2] = "delete"
|
||||
}
|
||||
},
|
||||
["home"] = {
|
||||
[1] = {
|
||||
[1] = "home"
|
||||
}
|
||||
},
|
||||
["up"] = {
|
||||
[1] = {
|
||||
[1] = "up"
|
||||
}
|
||||
},
|
||||
["pageDown"] = {
|
||||
[1] = {
|
||||
[1] = "pageDown"
|
||||
}
|
||||
},
|
||||
["close"] = {
|
||||
[1] = {
|
||||
[1] = "control",
|
||||
[2] = "w"
|
||||
}
|
||||
},
|
||||
["right"] = {
|
||||
[1] = {
|
||||
[1] = "right"
|
||||
}
|
||||
},
|
||||
["backspace"] = {
|
||||
[1] = {
|
||||
[1] = "back"
|
||||
}
|
||||
},
|
||||
["newline"] = {
|
||||
[1] = {
|
||||
[1] = "enter"
|
||||
}
|
||||
},
|
||||
["find"] = {
|
||||
[1] = {
|
||||
[1] = "control",
|
||||
[2] = "f"
|
||||
}
|
||||
},
|
||||
["pageUp"] = {
|
||||
[1] = {
|
||||
[1] = "pageUp"
|
||||
}
|
||||
},
|
||||
["delete"] = {
|
||||
[1] = {
|
||||
[1] = "delete"
|
||||
}
|
||||
},
|
||||
["left"] = {
|
||||
[1] = {
|
||||
[1] = "left"
|
||||
}
|
||||
},
|
||||
["save"] = {
|
||||
[1] = {
|
||||
[1] = "control",
|
||||
[2] = "s"
|
||||
}
|
||||
},
|
||||
["eol"] = {
|
||||
[1] = {
|
||||
[1] = "end"
|
||||
}
|
||||
},
|
||||
["down"] = {
|
||||
[1] = {
|
||||
[1] = "down"
|
||||
}
|
||||
}
|
||||
}
|
||||
Fetc/filesystem.cfgautorun=trueFetc/motdp#!/bin/lua
|
||||
|
||||
local component = require("component")
|
||||
local computer = require("computer")
|
||||
@ -25463,7 +25986,7 @@ D,MineOS/Applications/AppMarket.app/Resources/D2MineOS/Applications/AppMarket.
|
||||
youHaveNewestApps = "У ваÑ<C2B0> Ñ<>амое новое ПО",
|
||||
downloadingInfoAboutApplication = "Загрузка информации о приложении",
|
||||
updating = "Обновление",
|
||||
}D%MineOS/Applications/MineCode IDE.app/F5MineOS/Applications/MineCode IDE.app/MineCode IDE.luaä<EFBFBD>
|
||||
}D%MineOS/Applications/MineCode IDE.app/F5MineOS/Applications/MineCode IDE.app/MineCode IDE.luaä¸
|
||||
---------------------------------------------------- Libraries ----------------------------------------------------
|
||||
|
||||
-- "/MineOS/Applications/MineCode IDE.app/MineCode IDE.lua" open OS.lua
|
||||
@ -26024,10 +26547,10 @@ local function downloadFromWeb()
|
||||
if success then
|
||||
newFile()
|
||||
mainWindow.codeView.lines, mainWindow.codeView.maximumLineLength = splitStringIntoLines(reason)
|
||||
hideSettingsContainer()
|
||||
else
|
||||
GUI.error(reason, {title = {color = 0xFFDB40, text = "Failed to connect to URL"}})
|
||||
end
|
||||
hideSettingsContainer()
|
||||
end
|
||||
end
|
||||
|
||||
@ -26253,6 +26776,7 @@ local function pasteAutoBrackets(unicodeByte)
|
||||
firstPart = unicode.sub(mainWindow.codeView.lines[mainWindow.codeView.selections[1].to.line], 1, mainWindow.codeView.selections[1].to.symbol)
|
||||
secondPart = unicode.sub(mainWindow.codeView.lines[mainWindow.codeView.selections[1].to.line], mainWindow.codeView.selections[1].to.symbol + 1, -1)
|
||||
mainWindow.codeView.lines[mainWindow.codeView.selections[1].to.line] = firstPart .. possibleBrackets.openers[char] .. secondPart
|
||||
cursor.position.symbol = cursor.position.symbol + 2
|
||||
-- Ð<> тут мы делаем двойную автоÑ<C2BE>кобку, еÑ<C2B5>ли можем
|
||||
elseif possibleBrackets.openers[char] and not currentSymbol:match("[%a%d%_]") then
|
||||
paste({char .. possibleBrackets.openers[char]})
|
||||
@ -26969,7 +27493,7 @@ buffer.draw()
|
||||
mainWindow:handleEvents(config.cursorBlinkDelay)
|
||||
|
||||
|
||||
D/MineOS/Applications/MineCode IDE.app/Resources/D5MineOS/Applications/MineCode IDE.app/Resources/About/F@MineOS/Applications/MineCode IDE.app/Resources/About/Russian.txt½MineCode IDE - Ñ<>то мощный инÑ<C2BD>турмент длÑ<C2BB> разработки приложений Ñ<> богатым функционалом: от подÑ<C2B4>ветки Ñ<>интакÑ<C2BA>иÑ<C2B8>а Lua, выделениÑ<C2B8> текÑ<C2BA>та и работы Ñ<> буфером обмена до поддержки пользовательÑ<C592>ких цветовых Ñ<>хем. Удобный файловый менеджер также прилагаетÑ<E2809A>Ñ<EFBFBD>.F7MineOS/Applications/MineCode IDE.app/Resources/Icon.pic
OCIFA | ||||