var view = ko.views.manager.currentView;
var scimoz = view.scimoz;
var currentPos = scimoz.currentPos;
var currentLine = scimoz.lineFromPosition(currentPos);
var lineStartPos = scimoz.positionFromLine(currentLine);
var lineEndPos = scimoz.getLineEndPosition(currentLine);
var text = scimoz.getTextRange(lineStartPos, lineEndPos);
if (/.*url.*\(["']?(.+?)["']?\)/.test(text)) {
var url = RegExp.$1;
var currentView = ko.views.manager.currentView;
var cwd = currentView.document.file.dirName;
var prefix = (text.indexOf("http") == -1)? "file:///" + cwd + "/" : "";
url = prefix + url;
var img = new Image();
img.src = url;
// Try 10 times
var lim = 10;
var i = 0;
var writeTag = function(i) {
if (i >= lim) {
ko.dialogs.alert("Sorry, can't find the height and width of the image");
} else if (!img.height || !img.width) {
ko.statusBar.AddMessage("No img info at attempt " + i, "editor", 500, true);
setTimeout(writeTag, 100, i + 1);
} else {
var newText = ('\r\n\theight: ' + img.height + 'px;' +
'\r\n\twidth: ' + img.width + 'px;');
scimoz.lineEnd();
scimoz.insertText(lineEndPos, newText);
}
}
writeTag(0);
} else {
alert("Can't get image info from URL '" + text + '"');
}
// TESTING: Put the cursor somewhere on one of the following lines, run the macro.
// background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/0/04/WhiteandKeynes....) 0 0 no-repeat; /* ABSOLUTE FILE PATH */
// background: url(../images/bgtile.jpg) 0 0 no-repeat; /* RELATIVE FILE PATH */