Po kliknięciu w przycisk cytowania, w konsoli pojawia się błąd, a poza tym nic w formularzu edycji się nie dzieje.
Error: Ranges must be added sorted by
from
position andstartSide
somekind napisał(a):
Po kliknięciu w przycisk cytowania, w konsoli pojawia się błąd, a poza tym nic w formularzu edycji się nie dzieje.
Error: Ranges must be added sorted by
from
position andstartSide
U mnie działa. FF 99.0.1
somekind napisał(a):
Na GównoChromie też coś nie bangla, nie da się w ogóle edytować zacytowanej treści.
Co tu się znowu dzieje?
Mobilny FF działa jakby to kogoś interesowało. Na PC też mi dzisiaj działało, ale było to kilka godzin temu.
somekind napisał(a):
Po kliknięciu w przycisk cytowania, w konsoli pojawia się błąd, a poza tym nic w formularzu edycji się nie dzieje.
Error: Ranges must be added sorted by
from
position andstartSide
Jak koledzy pisali wyżej - FF 99.0.1 na Linux Mint i efekt zgodny z oczekiwaniami.
somekind napisał(a):
Po kliknięciu w przycisk cytowania, w konsoli pojawia się błąd, a poza tym nic w formularzu edycji się nie dzieje.
Error: Ranges must be added sorted by
from
position andstartSide
działa
Konkretnie nie działa cytowanie tego posta: Nowy regulamin dla 4programmers.net
Na edge też (Version 100.0.1185.50 (Official build) (64-bit)).
wielki_bebzon napisał(a):
Na edge też (Version 100.0.1185.50 (Official build) (64-bit)).
Ta sama wersja Edge, ale u mnie działa normalnie — jak widać po tym poście. Post, który próbował zacytować @somekind też normalnie dodaje się do pola edycyjnego, ale formatowanie się krzaczy:
Znowu problemy z tym cholernym edytorem… :D
@TomRiddle - jakiś pomysł?
To jest chyba ten sam błąd co jakiś czas temu @Silv znalazł, i ma tą samą przyczynę.
Już wyjaśniam o co chodzi w bugu: parsowanie kodu inline `inline`
(oraz innych elementów inline) ma swój algorytm, a parsowanie elementów blokowych swój (np do cytatu lub dużych fragmentów kodu), jeśli nie wchodzą sobie w drogę to jest git. Ale da się zrobić tak że sobie wejdą, np jak się najdą na siebie elementy blokowe i inlinowe, normalnie to się nie dzieje, bo inlineowe zawsze są w ramach jednej linijki, a blokowe zawsze są na całą linijkę lub więcej.
Ale! Gdyby ktoś zrobił kod inline na więcej niż jedną linijkę, np:
i kto ma określić która interpretacja jest `strongest plausible
`? Jak stwierdzić
i potem ktoś doda element blokowy, np cytat, to się stanie tak że linijka cytatu się "przekroi" z linijkami kodu inline. Już podmieniłem w tym Nowy regulamin dla 4programmers.net.
Jako tymczasowy środek zaradczy zalecam moderatorom podmienić w poście kod
one two `three
` four
na
one two `three` four
Podczas gdy ja będę fixował edytor.
Unit test już napisany, teraz wystarczy fixnąć. Heheheh
Napisałem drzewo binarne żeby fixnąć buga, co by nie robić sortowania, chce ktoś zerknąć czy się nie walnąłem gdzieś? Nie wiem kto tu się na 4p najbardziej zna na kolekcjach i algorytmach.
import BinaryTree from "../../../src/decoration/binaryTree.js";
test('empty tree', () => {
// given
const tree = new BinaryTree();
// when, then
expect(tree.inOrder()).toStrictEqual([]);
});
test('single item', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
// then
expect(tree.inOrder()).toStrictEqual(['twelve']);
});
test('small, big', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(13, 'thirteen');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'thirteen']);
});
test('big, small', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(13, 'thirteen');
tree.insert(12, 'twelve');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'thirteen']);
});
test('two equal', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(12, 'twelve');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'twelve']);
});
test('three equal', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(12, 'twelve');
tree.insert(12, 'twelve');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'twelve', 'twelve']);
});
test('small, big, small', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(13, 'thirteen');
tree.insert(12, 'twelve');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'twelve', 'thirteen']);
});
test('small, big, smaller', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(13, 'thirteen');
tree.insert(11, 'eleven');
// then
expect(tree.inOrder()).toStrictEqual(['eleven', 'twelve', 'thirteen']);
});
test('small, big, medium', () => {
// given
const tree = new BinaryTree();
// when
tree.insert(12, 'twelve');
tree.insert(14, 'fourteen');
tree.insert(13, 'thirteen');
// then
expect(tree.inOrder()).toStrictEqual(['twelve', 'thirteen', 'fourteen']);
});
Impl
export default class BinaryTree {
constructor() {
this.root = null;
}
insert(key, value) {
if (this.root === null) {
this.root = new Node(key, value);
} else {
let node = this.root;
let trailingNode = null;
while (node != null) {
trailingNode = node;
node = key < node.key ? node.left : node.right;
}
if (trailingNode == null) {
return;
}
if (key < trailingNode.key) {
trailingNode.left = new Node(key, value);
} else {
trailingNode.right = new Node(key, value);
}
}
}
inOrder() {
function iterateNext(root, call) {
if (root != null) {
iterateNext(root.left, call);
call(root.value);
iterateNext(root.right, call);
}
}
const values = [];
iterateNext(this.root, value => values.push(value));
return values;
}
}
class Node {
constructor(key, value) {
this.key = key;
this.value = value;
this.left = null;
this.right = null;
}
}
Wrzuciłem wersję 1.11.7
na 4programmers.dev, dodałem też post z kopią feralnego tekstu: https://4programmers.dev/Forum/Newbie/72-lorem_ipsum_lorem_ipsumlorem_ipsum_lorem_ipsum#id309
Wygląda ze cytowanie już działa spoko.
Zaraz wrzucam na 4programmers.net
PS: Wrzucona. Feralny post powinien się teraz dać móc cytować normalnie.