estensione di evidenziazione del codice per Libre Office writer


21

Di recente ho scritto un repport per la scuola con molto codice. L'unico modo in cui ho scoperto di rovinarlo era evidenziarlo con FORTE e questo è davvero piuttosto brutto. Quindi esiste un'estensione di evidenziazione del codice per libre office writer?

Come questo qui sotto:

<insert code here>

Va bene anche un'evidenziazione della sintassi con colori diversi.
Non accedo mai a un intero programma, quindi devo essere in grado di evidenziare quello che penso sia il codice.

Come questo: echo "Hello World!";

Cooder

Presonalmente non mi è piaciuto questo momento saliente poiché formatta il testo e tutto il testo che viene dopo. Voglio segnare del testo, quindi fare clic su un momento saliente e il gioco è fatto.
Questo è troppo complicato e difficile da usare, devo selezionare il linguaggio di programmazione ogni volta che sottolineo che sarà circa 100 volte in un rapporto, è troppo.
Vorrei qualcosa di simile a quello che usano sul sito. evidenziare il codice semplice se lo si desidera.

Formattatore di colorizer di codice

Si installa per me, ma non riesco a farlo funzionare e non ha il supporto PHP o HTML, di cui ho bisogno.


aggiunto come risposta, felice che abbia aiutato
Drake Clarris,

1
Consiglio di usare LaTeX (vedi esempio ). Prima di usare il lattice, ho salvato il codice sorgente come HTML con KDE Kate e copiato il codice renderizzato da un browser per aprire l'ufficio
Martin Thoma,

@Scegli perché aggiungi questo come commento anziché come risposta? spiega anche tutti i passaggi grazie.
Alvar,

Risposte:


15

Non è un plug-in, ma ho inserito il codice in un sito Web che colora la sintassi per te. Il sito che utilizzo è tohtml . Tuttavia, non utilizzo il codice HTML generato, copio semplicemente il codice colorato ed evidenziato dal browser e lo incollo nel mio documento e WYSIWYG.


La copia non ha funzionato per me da Firefox a Libroffice, anche se il salvataggio come HTML e l'apertura del file in Libreoffice quindi la copia ha funzionato
Wilf

copy + paste ha funzionato su Ubuntu da Chrome a LibreOffice! Grazie!
rrosa,

11

AGGIORNAMENTO 2: Estensione LibreOffice

Ho pubblicato il mio precedente script macro come estensione: Evidenziatore di codice che è disponibile nel negozio di estensioni di LibreOffice.

1. Come si installa?

Seguire questi passaggi per installare l'estensione:

Passaggio 1: installa libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Passaggio 2: installare i pigmenti per Python 3:

sudo pip3 install pygments

Passaggio 3: scarica e aggiungi l' estensione codehighlighter.oxt a Libre Office

2. Come si usa?

  • Apri LibreOffice Writer / Calc / Impress.
  • Inserisci una casella di testo ( Inserisci -> Casella di testo ).
  • Copia e incolla qualsiasi frammento di codice in quella casella di testo.
  • Seleziona la casella di testo.
  • Evidenzia con Strumenti -> Evidenzia codice -> <Nome lingua>

inserisci qui la descrizione dell'immagine

È possibile assegnare scorciatoie da tastiera per le lingue utilizzate di frequente. Per vedere come assegnare le scorciatoie da tastiera, visita la pagina di Git Hub: libreoffice-code-highlighter


Lascio qui la mia risposta originale poiché è ancora valida per LO <= 5.

Avevo gli stessi requisiti e nessuna di queste soluzioni ha funzionato per me in LibreOffice 5 tranne 'Code Colorizer Formatter'. Ma Code Colorizer Formatter ha funzionato solo in Writer (avevo bisogno anche di Impress). Successivamente ho trovato un'altra soluzione usando la macro Python che è stata testata in LibreOffice 5.

Installazione

Passaggio 1: installa libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Passaggio 2: installare i pigmenti per Python 3:

sudo pip3 install pygments

Passaggio 3: Scarica Highlight.py

Passaggio 4: Copia Highlight.py in / usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

Passaggio 5: impostare l'autorizzazione di sola lettura per lo script.

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

Passaggio 6: Apri LibreOffice Writer e vai su Strumenti -> Personalizza -> Tastiera

  • Seleziona il pulsante di opzione LibreOffice (disponibile nell'angolo in alto a sinistra)
  • Seleziona qualsiasi collegamento desiderato
  • Seleziona share / Highlight / Highlight_source_code nella categoria Funzioni
  • Fare clic sul pulsante Modifica per impostare il collegamento

uso

LibreOffice Impress

  • Apri LibreOffice Impress.
  • Inserisci una casella di testo (Inserisci -> Casella di testo).
  • Copia e incolla qualsiasi frammento di codice in quella casella di testo.
  • Crea un nuovo stile (fai clic destro su uno stile esistente -> Nuovo ...)
  • Denominare lo stile come code-<language>
  • Applica lo stile alla casella di testo dello snippet di codice.
  • Seleziona la casella di testo.
  • Utilizzare i tasti di scelta rapida per eseguire la macro.

LibreOffice Writer / Calc

  • Apri LibreOffice Writer / Calc.
  • Inserisci una casella di testo (Inserisci -> Casella di testo).
  • Copia e incolla qualsiasi frammento di codice in quella casella di testo.
  • Fare clic destro sulla casella di testo e selezionare 'Descrizione'.
  • Aggiungi una descrizione nel seguente formato: code-<language>
  • Seleziona la casella di testo
  • Utilizzare i tasti di scelta rapida per eseguire la macro.

AGGIORNAMENTO 1:

Ho aggiunto il supporto di stile personalizzato a questa estensione. Utilizzare code-<language>per lo stile predefinito e code-<language>-<style>per lo stile personalizzato. Gli stili disponibili sono elencati nella mia pagina Git Hub.

Ad esempio, Code-Java-Emacscolora il codice Java usando lo stile Emacs.


Funziona abbastanza bene, grazie! Come posso cambiare il tema dei pigmenti?
greschd,

Si prega di controllare il post aggiornato. Ho aggiornato il mio script per supportare stili personalizzati. È necessario aggiornare lo script Highlight.py, al fine di utilizzare questa nuova funzionalità.
Gobinath,

Bene grazie. Una cosa mi disturba ancora: quando ho appena salvato il file e quindi provo a eseguire la macro, reimposta il testo su una versione precedente. Sai perché questo è e se potesse essere risolto facilmente?
greschd,

Non ho affrontato un problema del genere. La prego di farmi sapere i passaggi esatti per riprodurre questo problema?
Gobinath,

(in Impress): modifico un po 'di codice in una casella di testo che avevo già formattato in precedenza, salvo il documento (Ctrl + S), seleziono la casella di testo, prova a evidenziare (Ctrl + Shift + H) e ripristina parte del testo Ho scritto
greschd il

4

Cooder

COOder sembra essere abbandonato e non può essere installato in LibreOffice 4.2.8.2.

Formattatore di colorizer di codice

Code Colorizer Formatter si installa e funziona correttamente in LibreOffice. Code Colorizer Formatter ha anche aggiunto il supporto PHP, ma il supporto HTML manca completamente e JavaScript non ha funzionato quando l'ho provato. Le istruzioni su come farlo funzionare sul sito Web Code Colorizer Formatter non hanno funzionato per me, tuttavia ho ottenuto Code Colorizer Formatter per funzionare in LibreOffice nel modo più duro, e qui sono le mie istruzioni:

  1. Scarica Code Colorizer Formatter dalla homepage del progetto Code Colorizer Formatter e installalo in LibreOffice Writer come qualsiasi altra estensione di LibreOffice.

  2. Apri il tuo file di codice in LibreOffice Writer. Code Colorizer Formatter supporta Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Assembler e x86 Assembler.

  3. Seleziona il codice da colorare.

  4. Seleziona Strumenti -> Macro -> Organizza macro -> LibreOffice Basic .

  5. Si aprirà una nuova finestra Macro di base di LibreOffice . Sotto l' intestazione Macro da , seleziona Macro personali -> MacroFormatterADP -> un linguaggio di programmazione supportato. Nello screenshot seguente, Java è selezionato.

  6. Sotto l' intestazione Macro esistenti in ... , seleziona HighlightSelLanguage dove Lingua in HighlightSelLanguage è uguale al linguaggio di programmazione selezionato al passaggio cinque. Nello screenshot seguente, è selezionato HighlightSelJava.

  7. Fai clic sul pulsante Esegui per colorare il codice selezionato.

inserisci qui la descrizione dell'immagine


Sembra abbandonato, andando nella sezione estensioni di LibreOffice dice che non ha avuto un aggiornamento da oltre un anno
Purefan,

La quantità di lavoro per utilizzare il CCF non vale il risultato, IMHO. Ho pensato che la pagina tohtml avesse fatto un lavoro migliore con i risultati (ad es. Punti di colore, parentesi, ecc.). Tuttavia, se qualcuno desidera utilizzare questo "modo semplice" ™, può andare su Strumenti >> Personalizza ... >> Menu contestuali (scheda) >> Menu (elenco a discesa) >> Testo >> Aggiungi ... ( pulsante) >> Macro LibreOffice >> Macro personali >> MacroFormatterADP >> (scegli la lingua) >> HighlightSel (lingua) >> Chiudi . Dopodiché, evidenzia semplicemente il testo, fai nuovamente clic e trova la nuova opzione nel menu contestuale per formattare il testo selezionato; la voce può essere rinominata.
code_dredd,

1
@karel Sto usando la versione 5.2.2.2in Kubuntu 16.10. L'ho fatto qualche istante prima del mio commento originale.
code_dredd,

@ray Grazie per il tuo suggerimento. Installerò Kubuntu in VirtualBox e lo proverò.
Karel,

@karel La versione 5.2.2.2in Windows non funziona allo stesso modo? Penserei che solo l'aggiornamento della tua versione dovrebbe funzionare senza dover passare attraverso un'installazione del sistema operativo completa.
code_dredd,

1

Devo selezionare il linguaggio di programmazione ogni volta che sottolineo che sarà circa 100 volte in un rapporto, è troppo

In realtà c'è un modo per associare la colorazione in una determinata lingua a un tasto di scelta rapida. Crea il seguente sub e associalo a un tasto di scelta rapida:

Vai su Strumenti → Macro → Organizza le macro → LibreOffice Basic. Seleziona Modulo1 e premi Modifica:

inserisci qui la descrizione dell'immagine

Quindi copia e incolla questo codice:

Sub COOoderInPython
  ExecuteCOOoder("python")
End Sub

Sub ExecuteCOOoder(sLanguage As String)
  oLanguage = org.openoffice.coooder.theLanguagesManager.get(GetDefaultContext()).getLanguage(sLanguage)
  If NOT isNull(oLanguage) Then
    oHighlighter = CreateUnoService("org.openoffice.coooder.Highlighter")
    oHighlighter.Language = oLanguage
    oHighlighter.parse(Null)
  End If
End Sub

Infine associlo a un tasto di scelta rapida:

inserisci qui la descrizione dell'immagine


0

Uno che conosco, ma che sembra essere abbandonato, è Code Colorizer Formatter .

Non so se funziona ancora in LO 4, ma potrebbe valerne la pena provarlo (o salvarlo e aggiornarlo!).


1
Code Colorizer Formatter è stato aggiornato il 1 marzo 2015 con supporto fino a LibreOffice 4.4 per molti linguaggi di programmazione incluso PHP. Ho provato Code Colorizer Formatter su LibreOffice 4.2. Le istruzioni sul sito Web ufficiale di Code Colorizer Formatter non hanno funzionato per me, quindi ho inserito le mie istruzioni per l'uso di Code Colorizer Formatter nella mia risposta.
Karel,

0

Mi sono stancato di formattare il mio codice su una pagina online e volevo che il mio codice venisse disegnato in LibreOffice o OpenOffice.

Ho scoperto che l'estensione "cooder" funziona correttamente sul mio LibreOffice 5. * anche se l'installazione sembra fallire (My LibreOffice 5. * sospeso durante l'installazione).

In Extension Manager puoi attivare Cooder, riavviare LibreOffice / NeoOffice / OpenOffice e dovresti vedere un nuovo simbolo che puoi usare per dare uno stile al tuo codice sorgente all'interno di LibreOffice.

È possibile scaricare l'estensione all'indirizzo: http://extensions.libreoffice.org/extension-center/coooder

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.