You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.5 KiB
JavaScript
130 lines
3.5 KiB
JavaScript
"use strict";
|
|
(self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([[4965],{
|
|
|
|
/***/ 24965:
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ mbox: () => (/* binding */ mbox)
|
|
/* harmony export */ });
|
|
var rfc2822 = [
|
|
"From", "Sender", "Reply-To", "To", "Cc", "Bcc", "Message-ID",
|
|
"In-Reply-To", "References", "Resent-From", "Resent-Sender", "Resent-To",
|
|
"Resent-Cc", "Resent-Bcc", "Resent-Message-ID", "Return-Path", "Received"
|
|
];
|
|
var rfc2822NoEmail = [
|
|
"Date", "Subject", "Comments", "Keywords", "Resent-Date"
|
|
];
|
|
|
|
var whitespace = /^[ \t]/;
|
|
var separator = /^From /; // See RFC 4155
|
|
var rfc2822Header = new RegExp("^(" + rfc2822.join("|") + "): ");
|
|
var rfc2822HeaderNoEmail = new RegExp("^(" + rfc2822NoEmail.join("|") + "): ");
|
|
var header = /^[^:]+:/; // Optional fields defined in RFC 2822
|
|
var email = /^[^ ]+@[^ ]+/;
|
|
var untilEmail = /^.*?(?=[^ ]+?@[^ ]+)/;
|
|
var bracketedEmail = /^<.*?>/;
|
|
var untilBracketedEmail = /^.*?(?=<.*>)/;
|
|
|
|
function styleForHeader(header) {
|
|
if (header === "Subject") return "header";
|
|
return "string";
|
|
}
|
|
|
|
function readToken(stream, state) {
|
|
if (stream.sol()) {
|
|
// From last line
|
|
state.inSeparator = false;
|
|
if (state.inHeader && stream.match(whitespace)) {
|
|
// Header folding
|
|
return null;
|
|
} else {
|
|
state.inHeader = false;
|
|
state.header = null;
|
|
}
|
|
|
|
if (stream.match(separator)) {
|
|
state.inHeaders = true;
|
|
state.inSeparator = true;
|
|
return "atom";
|
|
}
|
|
|
|
var match;
|
|
var emailPermitted = false;
|
|
if ((match = stream.match(rfc2822HeaderNoEmail)) ||
|
|
(emailPermitted = true) && (match = stream.match(rfc2822Header))) {
|
|
state.inHeaders = true;
|
|
state.inHeader = true;
|
|
state.emailPermitted = emailPermitted;
|
|
state.header = match[1];
|
|
return "atom";
|
|
}
|
|
|
|
// Use vim's heuristics: recognize custom headers only if the line is in a
|
|
// block of legitimate headers.
|
|
if (state.inHeaders && (match = stream.match(header))) {
|
|
state.inHeader = true;
|
|
state.emailPermitted = true;
|
|
state.header = match[1];
|
|
return "atom";
|
|
}
|
|
|
|
state.inHeaders = false;
|
|
stream.skipToEnd();
|
|
return null;
|
|
}
|
|
|
|
if (state.inSeparator) {
|
|
if (stream.match(email)) return "link";
|
|
if (stream.match(untilEmail)) return "atom";
|
|
stream.skipToEnd();
|
|
return "atom";
|
|
}
|
|
|
|
if (state.inHeader) {
|
|
var style = styleForHeader(state.header);
|
|
|
|
if (state.emailPermitted) {
|
|
if (stream.match(bracketedEmail)) return style + " link";
|
|
if (stream.match(untilBracketedEmail)) return style;
|
|
}
|
|
stream.skipToEnd();
|
|
return style;
|
|
}
|
|
|
|
stream.skipToEnd();
|
|
return null;
|
|
};
|
|
|
|
const mbox = {
|
|
name: "mbox",
|
|
startState: function() {
|
|
return {
|
|
// Is in a mbox separator
|
|
inSeparator: false,
|
|
// Is in a mail header
|
|
inHeader: false,
|
|
// If bracketed email is permitted. Only applicable when inHeader
|
|
emailPermitted: false,
|
|
// Name of current header
|
|
header: null,
|
|
// Is in a region of mail headers
|
|
inHeaders: false
|
|
};
|
|
},
|
|
token: readToken,
|
|
blankLine: function(state) {
|
|
state.inHeaders = state.inSeparator = state.inHeader = false;
|
|
},
|
|
languageData: {
|
|
autocomplete: rfc2822.concat(rfc2822NoEmail)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
}]);
|
|
//# sourceMappingURL=4965.591924d7805c15261494.js.map?v=591924d7805c15261494
|