Indica quebra automática de linhas de código longas no Word 2007

3

Estou usando o Word 2007 e inserindo código em um documento. Eu tenho um estilo com uma fonte de largura fixa e fundo cinza claro e tudo, e eu uso o Notepad ++ para realce de sintaxe.

Meu problema é com linhas de código que são muito longas para serem exibidas. Eles são envelopados automaticamente, mas não é óbvio para ver exatamente como as linhas devem ser, ou seja, onde a nova linha realmente está.

Existe uma maneira de inserir automaticamente um símbolo de seta no início de tais linhas quebradas para indicar que é a mesma linha (como uma hifenização, exceto em linhas longas em vez de palavras longas)?

Para que, por exemplo, isso:

public static void foo(String abcdefg, Boolean 123, String xyz)

(desde que a página / caixa / coluna / ... seja larga o suficiente para mostrar o texto até "123"), seria exibida assim:

public static void foo(String abcdefg, Boolean 123,
→String xyz)

    
por WaelJ 26.03.2010 / 07:48

3 respostas

0

Eu não acredito que isso seja um recurso do Microsoft Word, mas imagino que você possa emular isso fazendo um recuo negativo e definindo uma imagem de plano de fundo por parágrafo de forma que os primeiros 12pts de espaço estejam em branco e então os próximos 120pts são uma flecha de 12pt de altura, lado a lado 10 vezes. Isso permitiria que você quebrasse mais de 11 linhas.

    
por 26.03.2010 / 08:02
0

Talvez não seja a resposta que você estava procurando, mas você pode escrever um código VBA de pós-processamento que procure linhas longas e insira o símbolo desejado.

Este código pode ajudar você a começar (está pronto para copiar e colar):

Sub FixCodeLines()

Dim p           As Word.Paragraph
Dim c           As Word.Range
Dim charcount   As Integer
Dim MaxLineLen  As Integer
Dim txt         As String
Dim styname     As String

MaxLineLen = 68     ' number of characters on one line
txt = "    -->  "   ' symbol/text to insert
styname = "Code"    ' name of style to process

For Each p In ActiveDocument.Paragraphs
    If p.Style = styname Then
        charcount = 0
        For Each c In p.Range.Characters
            charcount = charcount + 1
            If (charcount Mod MaxLineLen = 0) Then
                c.InsertAfter Chr(11) & txt ' Chr(11) = soft enter
            End If
        Next
    End If
Next

End Sub

O código irá, para todos os parágrafos com estilo de código, inserir um shift-enter e o texto de sua escolha após cada linha longa (com base no número de caracteres)

Como usar:

  1. Aplique o estilo "Código" a todos os parágrafos do seu código fonte (uma boa idéia, de qualquer forma, para não usar a formatação manual). Verifique se a sua fonte de estilo de código é uma fonte de largura fixa, como Courier.

  2. Copie e cole o código no editor básico visual do Word (digite ALT-F11 , clique em Inserir > Módulo e cole o código)

  3. Em seu documento do Word, conte o número máximo de caracteres em uma linha do seu código de código e altere o valor na macro para esse valor (atualmente 68)

  4. Para executar a macro, de volta ao documento do Word, pressione ALT-F8 , selecione FixCodeLines e pressione Executar .

Observe que você só pode aplicar essa macro somente uma vez, não há inteligência para detectar parágrafos que já foram 'corrigidos'. Então você deve executá-lo no final da preparação do seu documento.

Além disso, se você tiver uma versão mais recente do Office (2003, etc.), poderá ter alguns problemas ao salvar / executar o documento / macro devido ao blabla de segurança. Leia todas as caixas de diálogo do Word com cuidado para evitar perder seu código.

    
por 26.03.2010 / 09:04
0

Outra solução possível seria adicionar numeração de lista ou marcadores aos parágrafos de código (inclua no estilo de código). Isso lhe daria uma simples indicação de que a linha está envolvida ou é nova.

    
por 02.01.2013 / 04:01