mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
[cm6] Move cursor over existing closing brace when inserting a required parameter (#13494)
* Move cursor over existing closing brace * Update package-lock.json * Update tests GitOrigin-RevId: dd729e41c2174d9f4563f2f47efcc075c7453ced
This commit is contained in:
parent
789253e41d
commit
adbccde085
4 changed files with 22 additions and 20 deletions
14
package-lock.json
generated
14
package-lock.json
generated
|
@ -3280,9 +3280,8 @@
|
|||
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
|
||||
},
|
||||
"node_modules/@codemirror/autocomplete": {
|
||||
"version": "6.6.1",
|
||||
"resolved": "git+ssh://git@github.com/overleaf/codemirror-autocomplete.git#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"integrity": "sha512-3xD9M0e5cw0XsC7mMfRy+vKcOup7Nno4J3r0aTvwWqsUlQYBzT0R3sBEn6y+gHdpIpuSEx+jKIGKiqBsWI8czg==",
|
||||
"version": "6.8.0",
|
||||
"resolved": "git+ssh://git@github.com/overleaf/codemirror-autocomplete.git#03ea9e4565635c9bc005c9b809713d1897aabc59",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
|
@ -41256,7 +41255,7 @@
|
|||
"@babel/preset-env": "^7.21.5",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@babel/preset-typescript": "^7.21.5",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.8.0-overleaf-1",
|
||||
"@codemirror/commands": "^6.2.3",
|
||||
"@codemirror/lang-markdown": "^6.1.1",
|
||||
"@codemirror/language": "^6.6.0",
|
||||
|
@ -44935,9 +44934,8 @@
|
|||
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
|
||||
},
|
||||
"@codemirror/autocomplete": {
|
||||
"version": "git+ssh://git@github.com/overleaf/codemirror-autocomplete.git#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"integrity": "sha512-3xD9M0e5cw0XsC7mMfRy+vKcOup7Nno4J3r0aTvwWqsUlQYBzT0R3sBEn6y+gHdpIpuSEx+jKIGKiqBsWI8czg==",
|
||||
"from": "@codemirror/autocomplete@github:overleaf/codemirror-autocomplete#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"version": "git+ssh://git@github.com/overleaf/codemirror-autocomplete.git#03ea9e4565635c9bc005c9b809713d1897aabc59",
|
||||
"from": "@codemirror/autocomplete@github:overleaf/codemirror-autocomplete#v6.8.0-overleaf-1",
|
||||
"requires": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/state": "^6.0.0",
|
||||
|
@ -50239,7 +50237,7 @@
|
|||
"@babel/preset-react": "^7.18.6",
|
||||
"@babel/preset-typescript": "^7.21.5",
|
||||
"@babel/register": "^7.21.0",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.8.0-overleaf-1",
|
||||
"@codemirror/commands": "^6.2.3",
|
||||
"@codemirror/lang-markdown": "^6.1.1",
|
||||
"@codemirror/language": "^6.6.0",
|
||||
|
|
|
@ -57,8 +57,12 @@ export const extendRequiredParameter = (
|
|||
argumentNode.getChild('OpenBrace') &&
|
||||
argumentNode.getChild('CloseBrace')
|
||||
|
||||
// add a closing brace if needed
|
||||
if (nextChar(state.doc, change.to) !== '}') {
|
||||
if (nextChar(state.doc, change.to) === '}') {
|
||||
// include an existing closing brace, so the cursor moves after it
|
||||
change.insert += '}'
|
||||
change.to++
|
||||
} else {
|
||||
// add a closing brace if needed
|
||||
if (countUnclosedBraces(state.doc, change.from, change.to) > 0) {
|
||||
change.insert += '}'
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
"@babel/preset-env": "^7.21.5",
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@babel/preset-typescript": "^7.21.5",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#4514fd21c6c9219f5c23a6a675ad843bb7a5b2bd",
|
||||
"@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.8.0-overleaf-1",
|
||||
"@codemirror/commands": "^6.2.3",
|
||||
"@codemirror/lang-markdown": "^6.1.1",
|
||||
"@codemirror/language": "^6.6.0",
|
||||
|
|
|
@ -177,7 +177,7 @@ describe('autocomplete', { scrollBehavior: false }, function () {
|
|||
cy.contains('\\includegraphics[width=0.3\\textwidth]{frog.jpg}')
|
||||
|
||||
// start a new line and select an "includegraphics" command completion
|
||||
cy.get('@line').type('{rightArrow}{Enter}')
|
||||
cy.get('@line').type('{Enter}')
|
||||
activeEditorLine().type('\\includegr')
|
||||
cy.contains('\\includegraphics[]{}').click()
|
||||
|
||||
|
@ -191,7 +191,7 @@ describe('autocomplete', { scrollBehavior: false }, function () {
|
|||
cy.contains('\\includegraphics[]{test-folder/example.png}')
|
||||
|
||||
activeEditorLine()
|
||||
.type(`${'{leftArrow}'.repeat('test-folder/example.png'.length)}fr`)
|
||||
.type(`${'{leftArrow}'.repeat('test-folder/example.png}'.length)}fr`)
|
||||
.type('{ctrl+ }')
|
||||
|
||||
cy.findAllByRole('listbox').should('have.length', 1)
|
||||
|
@ -492,7 +492,7 @@ describe('autocomplete', { scrollBehavior: false }, function () {
|
|||
cy.get('@line').contains('\\cite{ref-2}')
|
||||
|
||||
// start typing another reference
|
||||
cy.get('@line').type(', re')
|
||||
cy.get('@line').type('{leftArrow}, re')
|
||||
|
||||
// autocomplete open again
|
||||
cy.findAllByRole('listbox').contains('ref-3').click()
|
||||
|
@ -1031,37 +1031,37 @@ describe('autocomplete', { scrollBehavior: false }, function () {
|
|||
activeEditorLine().type('\\include{s', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('sometext.txt').click()
|
||||
activeEditorLine().should('have.text', '\\include{sometext.txt}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().type('\\inclu', { delay: 100 })
|
||||
cy.contains('\\include{}').click()
|
||||
cy.contains('example.tex').click()
|
||||
activeEditorLine().should('have.text', '\\include{example}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().type('\\inclu', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('\\include{}').click()
|
||||
cy.findAllByRole('option').contains('sometext.txt').click()
|
||||
activeEditorLine().should('have.text', '\\include{sometext.txt}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().click().as('line')
|
||||
activeEditorLine().type('\\input{e', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('example.tex').click()
|
||||
activeEditorLine().should('have.text', '\\input{example}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().click().as('line')
|
||||
activeEditorLine().type('\\input{s', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('sometext.txt').click()
|
||||
activeEditorLine().should('have.text', '\\input{sometext.txt}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().type('\\inpu', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('\\input{}').click()
|
||||
cy.findAllByRole('option').contains('example.tex').click()
|
||||
activeEditorLine().should('have.text', '\\input{example}')
|
||||
activeEditorLine().type('{rightArrow}{Enter}')
|
||||
activeEditorLine().type('{Enter}')
|
||||
|
||||
activeEditorLine().type('\\inpu', { delay: 100 })
|
||||
cy.findAllByRole('option').contains('\\input{}').click()
|
||||
|
|
Loading…
Reference in a new issue