diff --git a/src/lua/documentset.lua b/src/lua/documentset.lua index 9551d2b0..df2eeefd 100644 --- a/src/lua/documentset.lua +++ b/src/lua/documentset.lua @@ -187,13 +187,13 @@ DocumentSet.setCurrent = function(self, name) end DocumentSet.renameDocument = function(self, oldname, newname) - if self.documents[newname] then + if self:findDocument(newname) then return false end - local d = self.documents[oldname] - self.documents[oldname] = nil - self.documents[newname] = d + local d = self:findDocument(oldname) + self._documentIndex[oldname] = nil + self._documentIndex[newname] = d d.name = newname self:touch() diff --git a/tests/build.py b/tests/build.py index 9a597d12..44df57bf 100644 --- a/tests/build.py +++ b/tests/build.py @@ -58,6 +58,7 @@ "weirdness-combining-words", "weirdness-delete-word", "weirdness-deletion-with-multiple-spaces", + "weirdness-document-rename", "weirdness-documentset-default-name", "weirdness-end-of-lines", "weirdness-forward-delete", diff --git a/tests/weirdness-document-rename.lua b/tests/weirdness-document-rename.lua new file mode 100644 index 00000000..598fec9f --- /dev/null +++ b/tests/weirdness-document-rename.lua @@ -0,0 +1,8 @@ +--!nonstrict +loadfile("tests/testsuite.lua")() + +AssertEquals(currentDocument.name, "main") +documentSet:renameDocument("main", "new") + +AssertEquals(currentDocument.name, "new") +AssertTableEquals({["new"]= currentDocument}, documentSet._documentIndex)