From ab34ef5fe1966fa845e428ab4b2fbb6b80f37206 Mon Sep 17 00:00:00 2001 From: Vivek R Date: Tue, 22 May 2018 21:25:57 +0530 Subject: [PATCH 1/2] Option to enable word wrap --- src/codeflask.js | 12 ++++++++++-- src/styles/editor.js | 7 ++++++- test/e2e/test-app.js | 24 +++++++++++++++++++++--- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/codeflask.js b/src/codeflask.js index 6a195e11..50084713 100644 --- a/src/codeflask.js +++ b/src/codeflask.js @@ -40,7 +40,7 @@ export default class CodeFlask { startEditor() { const isCSSInjected = inject_css(editor_css, null, this.opts.styleParent); - + if (!isCSSInjected) { throw Error('Failed to inject CodeFlask CSS.'); return; @@ -100,6 +100,8 @@ export default class CodeFlask { this.opts.enableAutocorrect = this.opts.enableAutocorrect || false; this.opts.lineNumbers = this.opts.lineNumbers || false; this.opts.defaultTheme = this.opts.defaultTheme !== false; + // Set word wrap + this.opts.wordWrap = this.opts.wordWrap || false; if (this.opts.rtl === true) { this.elTextarea.setAttribute('dir', 'rtl'); @@ -121,6 +123,12 @@ export default class CodeFlask { if (this.opts.defaultTheme) { inject_css(default_css_theme, 'theme-default', this.opts.styleParent); } + + // If wordwrap then enable it + if (this.opts.wordWrap) { + this.elTextarea.classList.add('word-wrap'); + this.elPre.classList.add('word-wrap'); + } } updateLineNumbersCount() { @@ -296,4 +304,4 @@ export default class CodeFlask { this.updateCallBack(this.code); } } -} \ No newline at end of file +} diff --git a/src/styles/editor.js b/src/styles/editor.js index 3be29665..45e13b79 100644 --- a/src/styles/editor.js +++ b/src/styles/editor.js @@ -61,6 +61,11 @@ export const editor_css = ` text-align: left; } + .codeflask__flatten.word-wrap { + white-space: pre-wrap; + word-wrap: break-word; + } + .codeflask--has-line-numbers .codeflask__flatten { width: calc(100% - ${LINE_NUMBER_WIDTH}); left: ${LINE_NUMBER_WIDTH}; @@ -109,4 +114,4 @@ export const editor_css = ` background: #eee; z-index: 1; } -`; \ No newline at end of file +`; diff --git a/test/e2e/test-app.js b/test/e2e/test-app.js index 51ad53a9..d699a580 100644 --- a/test/e2e/test-app.js +++ b/test/e2e/test-app.js @@ -8,7 +8,7 @@ describe('CodeFlask Tests', () => { before(() => { browser.url('http://localhost:8888/'); }); - + after(() => { server.close(); }); @@ -37,7 +37,7 @@ describe('CodeFlask Tests', () => { expect(browser.isExisting('.codeflask .codeflask__lines')).to.be.true; expect(browser.isExisting('.codeflask .codeflask__lines__line')).to.be.true; }); - + it('should have same lineNumbers as lines of code', function () { $('.codeflask__textarea').setValue('let it = "go";\nconst parrot = "bird";'); expect(browser.isExisting('.codeflask .codeflask__lines')).to.be.true; @@ -106,4 +106,22 @@ describe('CodeFlask Tests', () => { const code = browser.execute(() => { return flask.getCode(); }); expect(code.value).to.be.equals('return "my code here"'); }); -}); \ No newline at end of file + + it('should not enable word wrap when its not set', async function () { + browser.execute(() => { + const test_div = document.createElement('div'); + document.body.appendChild(test_div); + const flask_test = new CodeFlask(test_div, { language: 'js' }); + }); + expect(!browser.isExisting('.codeflask__flatten.word-wrap')); + }); + + it('should enable word wrap when its set', async function () { + browser.execute(() => { + const test_div = document.createElement('div'); + document.body.appendChild(test_div); + const flask_test = new CodeFlask(test_div, { language: 'js', wordWrap: true }); + }); + expect(browser.isExisting('.codeflask__flatten.word-wrap')); + }); +}); From 922389aa713b2be98c1df2e4af5206e88bf2b87a Mon Sep 17 00:00:00 2001 From: Vivek R Date: Tue, 22 May 2018 21:50:18 +0530 Subject: [PATCH 2/2] Fixed indentations in tests --- test/e2e/test-app.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/e2e/test-app.js b/test/e2e/test-app.js index d699a580..91524398 100644 --- a/test/e2e/test-app.js +++ b/test/e2e/test-app.js @@ -116,12 +116,12 @@ describe('CodeFlask Tests', () => { expect(!browser.isExisting('.codeflask__flatten.word-wrap')); }); - it('should enable word wrap when its set', async function () { - browser.execute(() => { - const test_div = document.createElement('div'); - document.body.appendChild(test_div); - const flask_test = new CodeFlask(test_div, { language: 'js', wordWrap: true }); - }); + it('should enable word wrap when its set', async function () { + browser.execute(() => { + const test_div = document.createElement('div'); + document.body.appendChild(test_div); + const flask_test = new CodeFlask(test_div, { language: 'js', wordWrap: true }); + }); expect(browser.isExisting('.codeflask__flatten.word-wrap')); - }); + }); });