]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.cpp
Add test-refstyle-references to cmake. Also added missing file test-refstyle-referenc...
[lyx.git] / src / Paragraph.cpp
index 5a6804785094daa4a51b3ed1776763c1d279918e..ea2c8366a06755a8e818d9654c6d8cfa64d7d673 100644 (file)
@@ -69,8 +69,10 @@ using namespace lyx::support;
 namespace lyx {
 
 namespace {
+
 /// Inset identifier (above 0x10ffff, for ucs-4)
 char_type const META_INSET = 0x200001;
+
 }
 
 
@@ -129,7 +131,8 @@ private:
 
 class SpellCheckerState {
 public:
-       SpellCheckerState() {
+       SpellCheckerState()
+       {
                needs_refresh_ = true;
                current_change_number_ = 0;
        }
@@ -209,20 +212,24 @@ public:
                return empty_;
        }
 
-       bool needsRefresh() const {
+       bool needsRefresh() const
+       {
                return needs_refresh_;
        }
 
-       SpellChecker::ChangeNumber currentChangeNumber() const {
+       SpellChecker::ChangeNumber currentChangeNumber() const
+       {
                return current_change_number_;
        }
 
-       void refreshRange(pos_type & first, pos_type & last) const {
+       void refreshRange(pos_type & first, pos_type & last) const
+       {
                first = refresh_.first;
                last = refresh_.last;
        }
 
-       void needsRefresh(pos_type pos) {
+       void needsRefresh(pos_type pos)
+       {
                if (needs_refresh_ && pos != -1) {
                        if (pos < refresh_.first)
                                refresh_.first = pos;
@@ -237,13 +244,13 @@ public:
                needs_refresh_ = pos != -1;
        }
 
-       void needsCompleteRefresh(SpellChecker::ChangeNumber change_number) {
+       void needsCompleteRefresh(SpellChecker::ChangeNumber change_number)
+       {
                needs_refresh_ = true;
                refresh_.first = 0;
                refresh_.last = -1;
                current_change_number_ = change_number;
        }
-
 private:
        typedef vector<SpellResultRange> Ranges;
        typedef Ranges::const_iterator RangesIterator;
@@ -384,9 +391,10 @@ public:
        Language * getSpellLanguage(pos_type const from) const;
 
        Language * locateSpellRange(pos_type & from, pos_type & to,
-                                                               SkipPositions & skips) const;
+                                   SkipPositions & skips) const;
 
-       bool hasSpellerChange() const {
+       bool hasSpellerChange() const
+       {
                SpellChecker::ChangeNumber speller_change_number = 0;
                if (theSpellChecker())
                        speller_change_number = theSpellChecker()->changeNumber();
@@ -405,14 +413,16 @@ public:
                speller_state_.setRange(fp, state);
        }
 
-       void requestSpellCheck(pos_type pos) {
+       void requestSpellCheck(pos_type pos)
+       {
                if (pos == -1)
                        speller_state_.needsCompleteRefresh(speller_state_.currentChangeNumber());
                else
                        speller_state_.needsRefresh(pos);
        }
 
-       void readySpellCheck() {
+       void readySpellCheck()
+       {
                speller_state_.needsRefresh(-1);
        }
 
@@ -1451,18 +1461,25 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
                        // we have to provide all the optional arguments here, even though
                        // the last one is the only one we care about.
                        // Separate handling of optional argument inset.
-                       if (layout_->optargs != 0 || layout_->reqargs != 0)
-                               latexArgInsets(*owner_, os, features.runparams(),
-                                       layout_->reqargs, layout_->optargs);
-                       else
-                               os << from_ascii(layout_->latexparam());
+                       if (!layout_->latexargs().empty()) {
+                               OutputParams rp = features.runparams();
+                               rp.local_font = &owner_->getFirstFontSettings(bp);
+                               latexArgInsets(*owner_, os, rp, layout_->latexargs());
+                       }
+                       os << from_ascii(layout_->latexparam());
                }
                docstring::size_type const length = ods.str().length();
                // this will output "{" at the beginning, but not at the end
                owner_->latex(bp, f, os, features.runparams(), 0, -1, true);
                if (ods.str().length() > length) {
-                       if (is_command)
+                       if (is_command) {
                                ods << '}';
+                               if (!layout_->postcommandargs().empty()) {
+                                       OutputParams rp = features.runparams();
+                                       rp.local_font = &owner_->getFirstFontSettings(bp);
+                                       latexArgInsets(*owner_, os, rp, layout_->postcommandargs(), "post:");
+                               }
+                       }
                        string const snippet = to_utf8(ods.str());
                        features.addPreambleSnippet(snippet);
                }
@@ -2159,7 +2176,7 @@ bool Paragraph::usePlainLayout() const
 
 bool Paragraph::isPassThru() const
 {
-       return inInset().getLayout().isPassThru() || d->layout_->pass_thru;
+       return inInset().isPassThru() || d->layout_->pass_thru;
 }
 
 namespace {
@@ -2418,6 +2435,10 @@ void Paragraph::latex(BufferParams const & bparams,
                        os << '{';
                        ++column;
                }
+               if (!style.leftdelim().empty()) {
+                       os << style.leftdelim();
+                       column += style.leftdelim().size();
+               }
                if (allowcust)
                        column += d->startTeXParParams(bparams, os, runparams);
        }
@@ -2448,6 +2469,11 @@ void Paragraph::latex(BufferParams const & bparams,
                                ++column;
                        }
 
+                       if (!style.leftdelim().empty()) {
+                               os << style.leftdelim();
+                               column += style.leftdelim().size();
+                       }
+
                        if (allowcust)
                                column += d->startTeXParParams(bparams, os,
                                                            runparams);
@@ -2638,6 +2664,11 @@ void Paragraph::latex(BufferParams const & bparams,
                os << "}]~";
        }
 
+       if (!style.rightdelim().empty()) {
+               os << style.rightdelim();
+               column += style.rightdelim().size();
+       }
+
        if (allowcust && d->endTeXParParams(bparams, os, runparams)
            && runparams.encoding != prev_encoding) {
                runparams.encoding = prev_encoding;
@@ -2865,7 +2896,7 @@ docstring Paragraph::simpleLyXHTMLOnePar(Buffer const & buf,
                } else {
                        char_type c = getUChar(buf.params(), i);
 
-                       if (style.pass_thru)
+                       if (style.pass_thru || runparams.pass_thru)
                                xs << c;
                        else if (c == '-') {
                                docstring str;