diff --git a/css/main.css b/css/main.css index 9dcefc6..242e272 100644 --- a/css/main.css +++ b/css/main.css @@ -76,8 +76,6 @@ body { pre { counter-reset: lines; - word-wrap: normal !important; - white-space: pre !important; font-family: inherit; line-height: normal; outline: none; @@ -101,3 +99,15 @@ pre .line::before { color: #BBB; border-right: solid 1px; } + +.wrap-true { + word-wrap: break-word !important; + white-space: pre-wrap !important; + overflow-wrap: break-word; +} + +.wrap-false { + white-space: pre !important; + word-wrap: normal !important; + overflow-wrap: normal; +} diff --git a/js/background.js b/js/background.js index 6192283..2c1cb12 100644 --- a/js/background.js +++ b/js/background.js @@ -77,6 +77,7 @@ theme: 'sunburst', font: 'Inconsolata', fontSize: 'medium', + wordWrap: false, lineNumbers: true }; @@ -135,11 +136,11 @@ EXT_LANG_MAP[filename]; } - function getHighlightingCode(font, fontSize, lineNumbers, language) { + function getHighlightingCode(font, fontSize, lineNumbers, wordWrap, language) { return 'document.body.style.fontFamily = "' + font + '";' + 'document.body.style.fontSize = "' + fontSize + '";' + 'var container = document.querySelector("pre");' + - 'container.classList.add("' + language + '");' + + 'container.classList.add("' + language + '", "wrap-' + wordWrap + '");' + 'hljs.configure({ lineNumbers: ' + lineNumbers + ' });' + 'hljs.highlightBlock(container);' + 'document.body.style.backgroundColor = getComputedStyle(container).backgroundColor;'; @@ -179,8 +180,9 @@ } scripts.push({ - code: getHighlightingCode.apply(this, ['font', 'fontSize', 'lineNumbers']. - map(localStorage.getItem.bind(localStorage)).concat(language)) + code: getHighlightingCode.apply(this, + ['font', 'fontSize', 'lineNumbers', 'wordWrap']. + map(localStorage.getItem.bind(localStorage)).concat(language)) }); for (var i = 0; i < styles.length; i++) { diff --git a/js/options.js b/js/options.js index d5272ec..44544d8 100644 --- a/js/options.js +++ b/js/options.js @@ -33,6 +33,16 @@ decode: id, render: set('#code', 'style.fontSize', id) }, + wordWrap: { + selector: '#word-wrap', + value: 'checked', + decode: eq('true'), + render: function(value) { + var el = document.getElementById('code'); + el.classList.remove('wrap-true', 'wrap-false'); + el.classList.add('wrap-' + value); + } + }, lineNumbers: { selector: '#line-numbers', value: 'checked', diff --git a/options.html b/options.html index d1b00fc..7e16d13 100644 --- a/options.html +++ b/options.html @@ -92,6 +92,7 @@
package main